Eu tenho um aplicativo de console que usa o puTTY como uma DLL e preciso depurar a biblioteca puTTY em questão.
No UNIX, eu faria strace <command>
.
strace ls ggg
imprimiria algo como:
stat("ggg", 0x166b0d0) = -1 ENOENT (No such file or directory)
porque não tenho nenhum arquivo ou diretório chamado ggg
em meu diretório atual. Eu preciso disso para um aplicativo de console do Windows.
Eu pesquisei on-line, baixei o SDK do Windows com ferramentas de depuração. Eu tentei vários programas, cdb
parece ser o que eu preciso.
fazer cdb -o "!htrace -enable" <command>
parece ser o que eu preciso, mas acho que estou perdendo alguma coisa, porque não fornece nenhuma sugestão de por que o comando está falhando ou falhando em tentativas de abrir arquivos. (se <command>
carregar um arquivo que "deveria" ter sucesso, no entanto, <command>
quer um nome "sessões", não um caminho de arquivo, ele procura um arquivo ou uma chave reg com esse nome de sessão):
CommandLine: <command>
Symbol search path is: srv*
Executable search path is:
ModLoad: 00400000 004a7000 image00400000
ModLoad: 77d00000 77e8d000 ntdll.dll
ModLoad: 77aa0000 77b70000 C:\WINDOWS\SysWOW64\KERNEL32.DLL
ModLoad: 748e0000 74ab7000 C:\WINDOWS\SysWOW64\KERNELBASE.dll
ModLoad: 779d0000 77a36000 C:\WINDOWS\SysWOW64\WS2_32.dll
ModLoad: 77b70000 77c2e000 C:\WINDOWS\SysWOW64\RPCRT4.dll
ModLoad: 74720000 74740000 C:\WINDOWS\SysWOW64\SspiCli.dll
ModLoad: 74710000 7471a000 C:\WINDOWS\SysWOW64\CRYPTBASE.dll
ModLoad: 74f00000 74f57000 C:\WINDOWS\SysWOW64\bcryptPrimitives.dll
ModLoad: 75d10000 75d53000 C:\WINDOWS\SysWOW64\sechost.dll
ModLoad: 757c0000 75838000 C:\WINDOWS\SysWOW64\ADVAPI32.dll
ModLoad: 776b0000 7776d000 C:\WINDOWS\SysWOW64\msvcrt.dll
(2f550.32120): Break instruction exception - code 80000003 (first chance)
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll -
eax=00000000 ebx=00000010 ecx=44ce0000 edx=00000000 esi=00249000 edi=77d06964
eip=77dadbcf esp=00cafa0c ebp=00cafa38 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!LdrInitShimEngineDynamic+0x6af:
77dadbcf cc int 3
0:000> cdb: Reading initial command '!htrace -enable'
Handle tracing enabled.
Handle tracing information snapshot successfully taken.
0:000>
Basicamente, eu estou tentando descobrir onde o pscp.exe (puTTY scp) carrega a sessão do Windows, neste caso - responder a essa pergunta não vai ajudar, eu quero saber como eu posso controlar alças, do meu entendimento ,
cdb
habilita
htrace
depois que o programa foi concluído ou eu preciso digitar algo para o comando iniciar (inseguro), eu até tentei criar um novo processo com as opções de ingerir o depurador, ainda obter apenas o carregamento da DLL, nada mais.
Eu tentei logger.exe <command>
e logger.exe -o <command>
como stackoverflow diz que está mais próximo de strace
, lista as DLLs, assim como cdb
, nada mais. Em windbg
, consigo ver 8 identificadores de arquivos, no entanto, nenhuma informação sobre caminhos de arquivos ...
Desculpe, sou um cara do Linux, então mimado, strace
faz o truque sem opções.
Eu li:
link
link
link
link (para tentar iniciar o <command>
uma vez que o depurador foi carregado)
... e mais alguns ...