2015-12-21 28 views
2

如果我有一个赢取应用程序的转储,我怎样才能配置windbg调试器不“错误地诱导我”通过显示模块我不没有任何私人符号是它知道的最近的符号。我希望具有未知符号的函数只是打印地址,而不是任何符号信息+偏移量,这些信息与偏移量无关,可能会造成混淆。例如: -配置windbg不显示“错误符号”的模块没有符号

Plg!CopyPropertyHolder+0x42fae 
Plg!CopyPropertyHolder+0x43151 
Plg!CopyPropertyHolder+0x431d5 
Plg!GetWPXFilterVersion+0xe8 

这里你可以看到CopyPropertyHolder,但在所有情况下的相应的功能开始符号是不知道,它并不能帮助我的事实,地址是从已知的东西计算。

+1

WinDbg的使用从DLL作为开始出口,并增加了偏移。我不知道这是否可以禁用。这真的很烦人吗? – magicandre1981

回答

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 
+0

正是我需要的。 – Ghita

+0

不错的发现。我将把这个.symopt命令添加到我的cmdtree文件中。 – magicandre1981