Página 1 de 1
Nova Opção de debug pra Harbour
Enviado: 24 Mai 2013 09:45
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.
Nova Opção de debug pra Harbour
Enviado: 24 Mai 2013 12:34
por Itamar M. Lins Jr.
É bom para mostrar os recursos da Hwgui.
Nova Opção de debug pra Harbour
Enviado: 26 Mai 2013 18:00
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.
Nova Opção de debug pra Harbour
Enviado: 26 Mai 2013 19:29
por sygecom
Muito boa opção para quem usa LIB gráfica( Hwgui ).
Nova Opção de debug pra Harbour
Enviado: 26 Mai 2013 19:46
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.
Nova Opção de debug pra Harbour
Enviado: 27 Mai 2013 17:32
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.
Nova Opção de debug pra Harbour
Enviado: 27 Mai 2013 19:01
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.
Nova Opção de debug pra Harbour
Enviado: 28 Mai 2013 00:11
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:
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.
Nova Opção de debug pra Harbour
Enviado: 29 Mai 2013 09:33
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.
Nova Opção de debug pra Harbour
Enviado: 30 Mai 2013 11:10
por sygecom
Até agora não tínhamos nenhum DEBUG bom para usar com hwgui, isso é bom de mais da conta.
Nova Opção de debug pra Harbour
Enviado: 30 Mai 2013 13:20
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.