Как использовать Windbg для открытия дампа и запуска некоторых команд Windbg из командной строки? - PullRequest
0 голосов
/ 21 января 2019

Как уже упоминалось в этом другом вопросе , я бы хотел запустить Windbg, открыть дамп и запустить несколько команд (.load pykd.pyd и !py heap_stat.py).

Я думал, что это будет легко, но даже запустить Windbg и открыть аварийный дамп кажется не так просто, как вы можете видеть из следующих неудачных примеров:

Prompt>windbg.exe /?
Prompt>windbg.exe --help
Prompt>windbg.exe E:\Bugs\program.exe_181212_215503.dmp
Prompt>windbg.exe -D E:\Bugs\program.exe_181212_215503.dmp
Prompt>windbg.exe -zertyuiopqsdfghjklwxcvbn
Prompt>windbg.exe -help
Prompt>windbg.exe help

Идея состоит в том, чтобы получить что-то вроде:

Prompt>windbg.exe -d <dumpfile> -c <command1;command2>

1 Ответ

0 голосов
/ 21 января 2019

это задокументировано и доступно как в windbg.chm, так и в командной строке -? обратите внимание, я использую его на CDB, который находится в режиме консоли, а не на WindBG
windbg -? , -h , --help , /? , -B#llCr@p
все должно появиться в debugger.chm (сломан в 17763, но проверьте, скажем, 14951)

enter image description here

C:\>cdb -? | grep -i dump
  -openPrivateDumpByHandle <HANDLE>
    specifies the handle of a crash dump file to debug
  -z <CrashDmpFile> specifies the name of a crash dump file to debug
  -zd <CrashDmpFile> specifies the name of a crash dump file to debugand
                     deletes that crash dump after the debugger has finished
                      crash dump

C:\>

с просьбой создать дамп

C:\>cdb -c ".dump /ma dominidumpi.dmp;q" cdb

Microsoft (R) Windows Debugger Version 10.0.17763.132 X86

ntdll!LdrpDoDebuggerBreak+0x2c:
774a05a6 cc              int     3
0:000> cdb: Reading initial command '.dump /ma dominidumpi.dmp;q'
Creating dominidumpi.dmp - mini user dump
Dump successfully written
quit:

загрузка дампа, выполнение чего-либо и выход

C:\>cdb -c "lm;q" -z dominidumpi.dmp

Microsoft (R) Windows Debugger Version 10.0.17763.132 X86


Loading Dump File [C:\dominidumpi.dmp]
User Mini Dump File with Full Memory: Only application data is available



ntdll!LdrpDoDebuggerBreak+0x2c:
774a05a6 cc              int     3
0:000> cdb: Reading initial command 'lm;q'
start    end        module name
01250000 01278000   cdb        (deferred)
5b360000 5b4ef000   dbghelp    (deferred)
5b4f0000 5b5cc000   ucrtbase   (deferred)
5b5d0000 5bbac000   dbgeng     (deferred)

77400000 7753c000   ntdll      (pdb symbols)   xxx\ntdll.pdb
775a0000 775aa000   lpk        (deferred)
quit:


C:\>
...