我使用Windbg 64位来调试程序(32位,语言C),该程序包含例外。
在我的程序中,我重新发出有关异常发生的信息,特别是ExceptionRecord和ContextRecord,我调用批处理文件,调用 cdb.exe (64位)。
我称之为 cdb.exe 的批处理文件中的行是:
cdb.exe -p %PID% -pd -loga %LogFile%.txt -lines -c ".echo ;.echo *** Call stack of module causing abort ***;.effmach x86;.cxr %ContextRecord%;kp; .dump /ma %LogFile%.dmp;q" > nul
%PID%:我的流程Id
因此,当我使用; .load wow64exts;!sw; 而不是 .effmach x86 时,debuger会运行并向我显示我需要的内容(行和函数导致异常) ,但是当我使用 .effmach x86 时,批处理文件停止运行或崩溃,或者我不知道,但是没有结果并且没有创建日志文件。
我的问题:为什么 .effmach x86 崩溃我的批处理文件?
感谢
我使用Windows 7 64位
(对不起我的英文)
答案 0 :(得分:1)
我发现问题了 原因很简单,必须在x86和下一个分号之间添加空格; (x86;架构不存在)