Nova Opção de debug pra Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Nova Opção de debug pra Harbour

Mensagem por JoséQuintas »

Testei aqui usando 2 monitores, 1 com o debug e o outro com a tela do sistema.
Muito interessante.
Não é exclusivo pra HWGUI - aqui testei com GTWVG.
O EXE do debug é em separado do EXE normal, igual existia a opção no cld.exe do Clipper.

http://www.kresin.ru/en/debugger.html

Obs. No Harbour 3.2 acusa algumas variáveis não declaradas, e function sem return, mas foi só acrescentar LOCAL e RETURN aonde necessário.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Nova Opção de debug pra Harbour

Mensagem por Itamar M. Lins Jr. »

É bom para mostrar os recursos da Hwgui.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Nova Opção de debug pra Harbour

Mensagem por JoséQuintas »

Não são usados recursos da hwgui, e sim do Harbour.

Mas tem recursos que podem começar uma nova geração de debugs:
- janela separada pro debug
- debug separado do EXE
- opção de usar o debug em uma máquina, pra acompanhar o EXE que está em outra máquina

Fui fazer meu primeiro uso pra valer, e não funcionou direito.
O debug do Harbour continua sendo a melhor opção, mesmo não fazendo tudo que o do Clipper faz.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Nova Opção de debug pra Harbour

Mensagem por sygecom »

Muito boa opção para quem usa LIB gráfica( Hwgui ).
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Nova Opção de debug pra Harbour

Mensagem por JoséQuintas »

O programa de debug é independente do EXE, faz tudo através de troca de informações por arquivo em disco entre o debug e o EXE.
Só linqueditar com a lib de debug.
Depois vai usar o EXE do programa, e mais o EXE do debug.
O EXE pode estar usando qualquer lib gráfica.

Obs.
Quem quiser usar, é baixar a hwgui e compilar. vém com os arquivos HBP pra compilação.
hwgui\utils\debugger é o programa de debug, que usa hwgui
hwgui\source\debug é a lib pra compilar com o EXE não precisa hwgui.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Nova Opção de debug pra Harbour

Mensagem por Itamar M. Lins Jr. »

Não são usados recursos da hwgui, e sim do Harbour.
Como não ?
Tudo feito com a Hwgui e não usa os recursos da hwgui ? vai entender.

Código: Selecionar todos

Function Main( ... )
Local oMainW, oFont, oBmpPoint, oBmpCurr
Local aParams := hb_aParams(), i, cFile, cExe, cDirWait

   PREPARE FONT oFont NAME "Georgia" WIDTH 0 HEIGHT -17 CHARSET 4

   INIT WINDOW oMainW MAIN TITLE "Debugger" ;
     AT 200,0 SIZE 600,544                  ;
     FONT oFont                             ;
     ON EXIT {|| ExitDbg()}

   MENU OF oMainW
      MENU TITLE "&File"
         MENUITEM "Debug program" ID MENU_INIT ACTION DebugNewExe()
         SEPARATOR
         MENUITEM "Set Path" ACTION SetPath()
         MENUITEM "Open prg" ACTION OpenPrg()
         SEPARATOR
         MENUITEM "&Close debugger" ID MENU_EXIT ACTION DoCommand( CMD_EXIT )
         MENUITEM "&Exit and terminate program" ID MENU_QUIT ACTION DoCommand( CMD_QUIT )
      ENDMENU
      MENU TITLE "&Locate"
         MENUITEM "&Find"+Chr(9)+"Ctrl+F" ACTION Locate( 0 ) ACCELERATOR FCONTROL,Asc("F")
         MENUITEM "&Next" +Chr(9)+"F3" ACTION Locate( 1 ) ACCELERATOR 0,VK_F3
         MENUITEM "&Previous" ACTION Locate( -1 )
         SEPARATOR
         MENUITEM "Functions &list" ACTION Funclist()
      ENDMENU
      MENU ID MENU_VIEW TITLE "&View"
         MENUITEM "&Stack" ID MENU_STACK ACTION StackToggle()
         MENUITEM "&Local vars" ID MENU_LOCAL ACTION LocalsToggle()
         MENUITEM "&Watches" ID MENU_WATCH ACTION WatchesToggle()
         SEPARATOR
         MENUITEM "Work&Areas"+Chr(9)+"F6" ACTION AreasToggle() ACCELERATOR 0,VK_F6
      ENDMENU
      MENU ID MENU_RUN TITLE "&Run"
         MENUITEM "&Animate" ACTION Animate()
         MENUITEM "&Go"+Chr(9)+"F5" ACTION DoCommand( CMD_GO ) ACCELERATOR 0,VK_F5
         MENUITEM "&Step"+Chr(9)+"F8" ACTION DoCommand( CMD_STEP ) ACCELERATOR 0,VK_F8
         MENUITEM "To &cursor"+Chr(9)+"F7" ACTION DoCommand( CMD_TOCURS ) ACCELERATOR 0,VK_F7
         MENUITEM "&Trace"+Chr(9)+"F10" ACTION DoCommand( CMD_TRACE ) ACCELERATOR 0,VK_F10
         MENUITEM "&Next Routine"+Chr(9)+"Ctrl+F5" ACTION DoCommand( CMD_NEXTR ) ACCELERATOR FCONTROL,VK_F5
      ENDMENU
      MENU ID MENU_BRP TITLE "&BreakPoints"
         MENUITEM "&Add"+Chr(9)+"F9" ACTION AddBreakPoint() ACCELERATOR 0,VK_F9
         MENUITEM "&Delete"+Chr(9)+"F9" ACTION AddBreakPoint()
      ENDMENU
      MENUITEM "&About" ACTION About()
   ENDMENU

   @ 0,0 BROWSE oBrwText ARRAY SIZE 600,436  ;
       FONT oFont STYLE WS_BORDER+WS_VSCROLL ;
       ON SIZE {|o,x,y|o:Move(,,x,y-108)}
       
   oBrwText:aArray := {}

#ifdef __LINUX__
  oBrwText:rowCount := 5
  oBrwText:AddColumn( HColumn():New( "",{|v,o|Iif(o:nCurrent==nCurrLine,'>',Iif(getBP(o:nCurrent)!=0,'*',' '))},"C",1,0 ) )
#else
   oBmpCurr := HBitmap():AddStandard(OBM_RGARROWD)
   oBmpPoint:= HBitmap():AddStandard(OBM_CHECK)
   oBrwText:AddColumn( HColumn():New( "", ;
      {|v,o|Iif(o:nCurrent==nCurrLine,1,Iif(getBP(o:nCurrent)!=0,2,0))},"N",1,0 ) )
   oBrwText:aColumns[1]:aBitmaps := { { {|n|n==1},oBmpCurr },{ {|n|n==2},oBmpPoint } }
#endif

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Nova Opção de debug pra Harbour

Mensagem por JoséQuintas »

Eu quis dizer sobre a parte que interessa, que é o debug.
A parte do debug é compilada junto ao EXE, sem hwgui.
A comunicação entre os dois programas é por arquivo em disco.
A tela do debugger até usa hwgui, mas usa apenas uns recursos mínimos. Dá pra fazer em qualquer GT.

Uma coisa é a hwgui e seus recursos.
Outra coisa é o debug, cuja tela principal no momento está em hwgui.
Pra mim são coisas distintas.

A hwgui é poderosa? ok.
O debug foi criado por um desenvolvedor da hwgui? ok.
O debug depende de recursos da hwgui? não. A tela foi criada com hwgui mas pode ser criada com outra gt.
O debug mostra o poder da hwgui? não, só usa pouca coisa básica.
O fonte do debugger pode ser compilado no Harbour puro? não. precisa modificar pra outra GT que não seja hwgui.
Se ajustar o debbuger pra outra GT, a nova gt passa a ser poderosa? Também não.

A hwgui é fraca? não. Estou falando apenas do esquema de debug não estar relacionado a hwgui.

Em todo caso, se eu ajustar pra gtwvg posto aqui, só pra mostrar que o debug não está relacionado a recursos hwgui.

Obs. O menu estilo windows, pode ser feito com hbwin, sem gt específica, mas poderia ser tudo em estilo console, que o debug continuaria funcionando normalmente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Nova Opção de debug pra Harbour

Mensagem por Itamar M. Lins Jr. »

Ok, claro que pode ser feito em qualquer GT. Alias o Xailer tem isso com mais recursos, o Pritpal Bedi já, já faz uma usando a HBQT, agradeceu ao Kresin pelo modelo, inspiração.

Olhando os fontes:
* Harbour Project source code:
* The Debugger
*
* Copyright 1999 Antonio Linares <alinares@fivetechsoft.com>
* Copyright 2003-2006 Phil Krylov <phil@newstar.rinet.ru>
* Copyright 2013 Alexander Kresin <alex@kresin.ru>
* www - http://harbour-project.org
E o Kresin está no Harbour desde o inicio e só olhar o Changelog do harbour.
1999-06-02-09:30 Alexander Kresin
Updated:
* source/hbpp/hbpp.c - main preprocessor file
* source/hbpp/c.prg - sample file
* source/hbpp/makefile.b16
* source/hbpp/makefile.b32
Added:
* source/hbpp/buildgcc.bat
* source/hbpp/table.c
A tela do debugger até usa hwgui, mas usa apenas uns recursos mínimos. Dá pra fazer em qualquer GT.
É como diz aquele ditado: Depois da onça morta todo mundo é caçador.

Recursos, recursos bons recursos, não estou dizendo que é a toda poderosa, state of art, apenas uma boa lib gráfica só isso.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Nova Opção de debug pra Harbour

Mensagem por Itamar M. Lins Jr. »

Já esta no SVN.
Thanks, I'll check it.

BTW, I've uploaded a new debugger version - 1.02 with the following
changes:

[+] Added "Options" menu item with "Font" and "Save settings" inside.
The font
and the path to sources are saved now in hwgdebug.xml file, which
is in the same directory where hwgdebug.exe is.
[*] Tabs in a source files are converted to spaces now for better
appearance
[*] Some changes to make it compatible with xHarbour, xHarbour/
hwgdebug.lib
is included in this distribution.
[!] Small fixes

Regards, Alexander.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Nova Opção de debug pra Harbour

Mensagem por sygecom »

Até agora não tínhamos nenhum DEBUG bom para usar com hwgui, isso é bom de mais da conta.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Nova Opção de debug pra Harbour

Mensagem por Itamar M. Lins Jr. »

Creio que nem a fivewin tem um debug.

Para o pessoal do xHarbour e da Minigui.
2013-05-29 18:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* source/debugger/dbgconnect.prg
* Small changes for debuggibg Minigui projects
* utils/debugger/bld.bat
* hbxml.lib added to the link script

2013-05-29 16:20 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* utils/debugger/hwgdebug.prg
* Some improvements

2013-05-29 12:45 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* source/debugger/dbgconnect.prg
* source/debugger/debugger.prg
* makefile.bc
* make_b32.bat
* Some changes for compatibility with xHarbour. Now, to build hwgdebug.lib
with xHarbour, you need to set the environment variable in make_b32.bat
( it is commented by default )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder