如果我有一个win应用程序的转储,我怎样才能将windbg调试器配置为不会导致我出错?"通过向我展示模块,我没有任何私人符号,它知道最近的符号。我希望具有未知符号的函数只打印地址,而不是任何符号信息+偏移,它们没有相关性并且可能会混淆。 E.g:
Plg!CopyPropertyHolder+0x42fae
Plg!CopyPropertyHolder+0x43151
Plg!CopyPropertyHolder+0x431d5
Plg!GetWPXFilterVersion+0xe8
在这里你可以看到CopyPropertyHolder,但是在所有情况下,相应函数的起始符号都是未知的,并且它不能帮助我解决地址是从已知的事物计算出来的事实。
答案 0 :(得分:3)
您看到的是导出符号。实际上,函数名称不匹配,可能会产生误导。
使用.symopt+ 400
(SYMOPT_EXACT_SYMBOLS),您可以关闭导出符号(或更好,打开精确符号):
0:000> k L3
[...]
02 00000000`0012c390 000007fe`e29cef0f Qt5Core!QEventDispatcherWin32::processEvents+0x2ba
0:000> .symopt+ 400
Symbol options are 0x30737:
[...]
0:000> k L3
[...]
02 00000000`0012c390 000007fe`e29cef0f Qt5Core+0x222b1a