我已经编译了 Firefox,并且有一个 JS 脚本会导致程序崩溃。
我使用 CDB 时遇到的唯一问题是将选项传递给-c
命令行选项。
这是我的示例会话:
cdb js.exe hello.js -c ".dump /ma /o c:\debug\debug.dmp;q"
相反,我得到
Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
CommandLine: js.exe test.js -c ".dump /ma /o c:\debug\debug.dmp;q"
Symbol search path is: SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download
/symbols
Executable search path is:
ModLoad: 00000000`00140000 00000000`00434000 js.exe
ModLoad: 00000000`77a80000 00000000`77c2b000 ntdll.dll
ModLoad: 00000000`77c60000 00000000`77de0000 ntdll32.dll
ModLoad: 00000000`75610000 00000000`7564f000 C:\Windows\SYSTEM32\wow64.dll
ModLoad: 00000000`751e0000 00000000`7523c000 C:\Windows\SYSTEM32\wow64win.dll
ModLoad: 00000000`75790000 00000000`75798000 C:\Windows\SYSTEM32\wow64cpu.dll
(a58.b0c): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30:
00000000`77b31220 cc int 3
0:000>
我想通过启动这个可执行文件和脚本来制作一个小型转储。这种方法有问题吗?
最终,我试图使用我构建的这条线: -c "bp main; lines; g; .dump c:/debug/debug.dmp; q"
无论我在命令中输入什么,都会显示相同的“欢迎”。我怀疑这意味着可执行文件没有启动?谢谢。