我正在使用 Windbg
调试转储文件,并且经常收到警告/错误消息,如下所示:
*** WARNING: Unable to verify checksum for icuuc58.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for icuuc58.dll -
为了避免这些问题,我已经尝试使用以下方法进行整个处理:
!sym prompts off
!sym quiet
但是警告/错误消息不断出现。
第一次回复后编辑(在第二次编辑中确认)
我使用 .outmask-6
和 .outmask-206
进行了多次尝试,但都或多或少失败了。这意味着什么:
.reload -f => a lot of error/warning messages => normal behaviour
.outmask-6 or .outmask-206
.reload -f => no error/warning messages => Ok
.outmask-6 or .outmask-206
.reload -f => no error/warning messages => Ok
<execution of the whole script> => a lot of error/warning messages => NOK
我相信有一些命令可以禁用 .outmask
命令。您能否确认这一点,如果是的话,是否有类似以下的命令:
.outmask-206(global) (which applies for the whole Windbg session)
就 symsrv.ini
文件而言:我的计算机上没有这个文件,老实说,我不想搜索符号加载可能导致问题的每个模块。我宁愿避免提到的警告/错误消息。
对问题有更多了解后进行编辑
我还没有提到的一件事是 PYKD
用法:我正在开发 heap_stat,一个基于 PYKD 的脚本,用于执行内存分析,我相信问题就在这里,正如您在以下摘录中看到的:
脚本源代码:
dbgCommand(".outmask-206")
...
dprintln("1")
type_info = typeInfo(class_name)
dprintln("2")
脚本输出:
1
*** WARNING: Unable to verify checksum for icuuc58.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for icuuc58.dll -
在我看来,这意味着 PYKD
typeInfo()
对象声明就是一个,禁用 .outmask()
Windbg
命令。
@PYKD 开发人员:您能否确认这一点,如果可以,请为此添加一个 PYKD
问题? (我在 PYKD
issues homepage 上没有看到任何 .outmask
相关问题)
最佳答案
您可以使用 .outmask-6
抑制错误/警告消息
或使用 .outmask-206 抑制末尾的 symsrv 摘要和警告消息
0:049> .outmask-6
Client 02C95358 mask is 3F1
0:049> .reload /f
Reloading current modules
................................................................
............................................................
使用此功能时要小心,一些重要的错误消息也可能会被抑制
如果您的意思是需要阻止 symsrv 访问 MS 符号服务器并浪费时间
设置带有 [exclusions] 部分的 symsrv.ini
cd windbg installation path
echo [exclusions] >> symsrv.ini
echo ic* >> symsrv.ini
outmask 是全局设置
关于windbg - 如何摆脱与符号文件相关的警告/错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54366898/