Depurar DLL... TEM JEITO?
Pessoal, como faço para depurar uma DLL que eu fiz no Delphi?
Danilorsa
Curtidas 0
Respostas
Maicongabriel
19/01/2004
Tem Sim !
No Dephi, menu ´Run´, ´Parameters´ em ´Host Application´, indique o programa que você tenha previamente criado para acessar esta DLL. Isto é tudo, agora basta rodar a dll ´F9´ e passar o debug :D
No Dephi, menu ´Run´, ´Parameters´ em ´Host Application´, indique o programa que você tenha previamente criado para acessar esta DLL. Isto é tudo, agora basta rodar a dll ´F9´ e passar o debug :D
GOSTEI 0
Nigro
19/01/2004
Mas dependendo das configurações do seu micro, pode haver travamentos.
GOSTEI 0
Nildo
19/01/2004
Se for para resolver erros, eu aconselho um componente que eu so. O MadExcept. É só você compilar seu prgrama com ele ativo, e toda vez que der o erro ele vai mostrar uma telinha detalhadamente da onde que de o erro, em que Unit, em que procedure e até mesmo em que linha! O usuário tem a opção de enviar este relatório por e-mail, fechar a aplicação, continuar a aplicação ou reiniciar a aplicação. Segue abaixo um relatório criado por ele no momento em que eu pressionei um botão que faz uma divisão por zero:
Viram? Linha 28, Unit1.
Este pacote (MadCollection) também tem units para você poder criar Hook para [b:a4a0832335]funções[/b:a4a0832335] do Windows ou DLLs também :shock:
www.Madshi.net
date/time : 2004-02-21 08:45 computer name : BRUNO user name : BRUNO operating system : Windows 98 SE build 2222 system language : Portuguese system up time : 46 minutes 2 seconds physical memory : 0·119 MB (free/total) system resources : 28·66 (gdi/user) free disk space : (C:) 7,53 GB process id : $ffe9030d executable : PROJECT1.EXE exec. date/time : 2004-02-21 08:45 madExcept version : 2.6a exception class : EDivByZero exception message : Division by zero. main thread ($ffe85149): 004701b3 PROJECT1.EXE Unit1 28 TForm1.Button1Click 00450851 PROJECT1.EXE Controls TControl.WndProc 004536cb PROJECT1.EXE Controls TWinControl.WndProc 0044700c PROJECT1.EXE StdCtrls TButtonControl.WndProc 0045061c PROJECT1.EXE Controls TControl.Perform 00453803 PROJECT1.EXE Controls DoControlMsg 00453e5f PROJECT1.EXE Controls TWinControl.WMCommand 0046a7d8 PROJECT1.EXE Forms TCustomForm.WMCommand 00450851 PROJECT1.EXE Controls TControl.WndProc 004536cb PROJECT1.EXE Controls TWinControl.WndProc 00468900 PROJECT1.EXE Forms TCustomForm.WndProc 00453348 PROJECT1.EXE Controls TWinControl.MainWndProc 0043a70c PROJECT1.EXE Classes StdWndProc bfb742b8 COMCTL32.DLL #413 00454acd PROJECT1.EXE Controls TWinControl.WMKeyUp 00450851 PROJECT1.EXE Controls TControl.WndProc 004536cb PROJECT1.EXE Controls TWinControl.WndProc 0044700c PROJECT1.EXE StdCtrls TButtonControl.WndProc 00453348 PROJECT1.EXE Controls TWinControl.MainWndProc 0043a70c PROJECT1.EXE Classes StdWndProc modules: 00400000 PROJECT1.EXE C:\ARQUIVOS DE PROGRAMAS\BORLAND\DELPHI6\PROJECTS 05470000 BORDBK60.DLL 50.4.227.0 C:\ARQUIVOS DE PROGRAMAS\ARQUIVOS COMUNS\BORLAND SHARED\DEBUGGER 65340000 OLEAUT32.DLL 2.40.4518.0 C:\WINDOWS\SYSTEM 65f00000 OLE32.DLL 4.71.3328.0 C:\WINDOWS\SYSTEM 70100000 RPCRT4.DLL 4.71.3328.0 C:\WINDOWS\SYSTEM 70200000 WININET.DLL 6.0.2600.0 C:\WINDOWS\SYSTEM 70bd0000 SHLWAPI.DLL 6.0.2600.0 C:\WINDOWS\SYSTEM 71450000 CRYPT32.DLL 5.131.1877.5 C:\WINDOWS\SYSTEM 75e30000 WSOCK32.DLL 4.10.0.1998 C:\WINDOWS\SYSTEM 75e70000 WS2HELP.DLL 4.10.0.1998 C:\WINDOWS\SYSTEM 75e90000 WS2_32.DLL 4.10.0.2222 C:\WINDOWS\SYSTEM 78000000 MSVCRT.DLL 6.1.8924.0 C:\WINDOWS\SYSTEM 794d0000 MSWSOCK.DLL 4.10.0.2222 C:\WINDOWS\SYSTEM 79e60000 MSOSS.DLL 5.131.1877.3 C:\WINDOWS\SYSTEM 7fcb0000 SHELL32.DLL 4.72.3612.1700 C:\WINDOWS\SYSTEM 7fe10000 COMDLG32.DLL 4.72.3510.2300 C:\WINDOWS\SYSTEM bfb70000 COMCTL32.DLL 5.81.4704.1100 C:\WINDOWS\SYSTEM bfe70000 VERSION.DLL 4.10.0.1998 C:\WINDOWS\SYSTEM bfe80000 ADVAPI32.DLL 4.80.0.1675 C:\WINDOWS\SYSTEM bff20000 GDI32.DLL 4.10.0.1998 C:\WINDOWS\SYSTEM bff50000 USER32.DLL 4.10.0.2222 C:\WINDOWS\SYSTEM bff70000 KERNEL32.DLL 4.10.0.2222 C:\WINDOWS\SYSTEM disassembling: [...] 004701a9 push eax 004701aa mov eax, $a 004701af pop edx 004701b0 mov ecx, edx 004701b2 cdq 004701b3 » idiv ecx 004701b5 lea edx, [ebp-4] 004701b8 call -$49bed ($4265d0) ; IntToStr 004701bd mov eax, [ebp-4] 004701c0 call -$26ef5 ($4492d0) ; ShowMessage 004701c5 xor eax, eax [...]
Viram? Linha 28, Unit1.
Este pacote (MadCollection) também tem units para você poder criar Hook para [b:a4a0832335]funções[/b:a4a0832335] do Windows ou DLLs também :shock:
www.Madshi.net
GOSTEI 0
Cebikyn
19/01/2004
Nildo, e pq vc não sugeriu isso antes pro PBB Player?
Agora falando sério: muito bom esse comp, vou pegar e colocar em (quase) todos os meus apps, inclusive o player.
Agora falando sério: muito bom esse comp, vou pegar e colocar em (quase) todos os meus apps, inclusive o player.
GOSTEI 0
Nildo
19/01/2004
Depois de instalado, aparece em Project -> MadExceptSettings
Dae vc marca ´Handle Exceptions´ e ´append map file to binary´. Ele vai aumentar o tamanho do EXE pq vai colocar o arquivo de mapa dentro do EXE. Senao marcasse o ´append map file to binary´ um arquivinho .MAP deve ir junto ao executável.
Ahh mais uma coisa: O Mathias (quem desenvolveu) me deixou bem claro que é FREE para uso NÃO COMERCIAL. Senão tem que pagar.
Eu uso em quase todos meus programas.
Não se esqueça que o UPX não deve ser passado no executável que contenha o MadExcept. Senão ele não mostra onde está o erro (Linha, unit).
Okz?
Dae vc marca ´Handle Exceptions´ e ´append map file to binary´. Ele vai aumentar o tamanho do EXE pq vai colocar o arquivo de mapa dentro do EXE. Senao marcasse o ´append map file to binary´ um arquivinho .MAP deve ir junto ao executável.
Ahh mais uma coisa: O Mathias (quem desenvolveu) me deixou bem claro que é FREE para uso NÃO COMERCIAL. Senão tem que pagar.
Eu uso em quase todos meus programas.
Não se esqueça que o UPX não deve ser passado no executável que contenha o MadExcept. Senão ele não mostra onde está o erro (Linha, unit).
Okz?
GOSTEI 0
Otto
19/01/2004
contenha o MadExcept. Senão ele não mostra onde está o erro (Linha, unit).
Okz?
diga la, esse mad+upx= tudo... seria uma excelente dupla....
ótimo componente. :wink:
GOSTEI 0
Nildo
19/01/2004
Eu acho que o ASPACK não influencia no MadExcept. Só que o AsPack é pago
GOSTEI 0
Otto
19/01/2004
onde posso achar esse aspack?
GOSTEI 0
Cebikyn
19/01/2004
http://www.aspack.com/
GOSTEI 0