Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windbg 如何消除与符号文件相关的警告/错误消息_Windbg_Symbols_Dump_Pykd - Fatal编程技术网

Windbg 如何消除与符号文件相关的警告/错误消息

Windbg 如何消除与符号文件相关的警告/错误消息,windbg,symbols,dump,pykd,Windbg,Symbols,Dump,Pykd,我正在使用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 但警告/错误信息

我正在使用
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
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
问题?(我在上没有看到任何
.outmask
相关问题)

您可以使用.outmask-6
或使用.outmask-206抑制结尾处的symsrv摘要和警告消息

0:049> .outmask-6
Client 02C95358 mask is 3F1
0:049> .reload /f
Reloading current modules
................................................................
............................................................
使用此选项时请小心,一些重要的错误消息也可能被抑制

如果您的意思是需要阻止symsrv访问ms symbol服务器并浪费时间

使用[Exclutions]部分设置symsrv.ini

cd windbg installation path

echo [exclusions] >> symsrv.ini
echo ic* >> symsrv.ini
outmask是全局设置


PYKD设置自己的输出掩码:

 client->GetOutputMask(&oldMask);  
 client->SetOutputMask(DEBUG_OUTPUT_NORMAL|DEBUG_OUTPUT_ERROR|DEBUG_OUTPUT_WARNING|DEBUG_OUTPUT_DEBUGGEE );

到目前为止,我的问题有两个答案:

  • 出掩蔽常规
    Windbg
    命令输出
  • 出掩蔽
    PYKD
    命令输出
我不能使用常规
Windbg
outmasking,因为我使用的是
PYKD
命令。
我不能使用
PYKD
outmasking,因为我只是启动(数千个)
PYKD
命令,每次都是打开和关闭一个单独的
PYKD
会话,配置
PYKD
outmask会大大降低我的应用程序的速度

因此,我决定采用另一种方法:我将确保
PYKD
输出消息的格式非常具体(它将始终包含制表符),因此,我将决定只使用
PYKD
消息(包含制表符的消息)

我已经测试过这种方法,我可以确认它工作得很好


谢谢您的帮助。

如果在
之后强制重新加载符号(
.reload
.reload/s/f icuuc58.dll
,甚至可能是
.reload/f
),它会改变吗!sym
command?感谢Blabb的光临。我已将我的问题编辑为对您的建议的回答。outmask是IDebugControl::ControlledOutput方法的一个参数。它是一个全局dbgeng!g_LogMask再次查看我在Hanks中编辑的gif以获得快速回复,但同时我发现这个问题似乎与PYKD有关。(我已经相应地更新了我的问题)谢谢你的回复,但是我在哪里可以找到有关此功能的文档?(这个
client
变量是什么)我查看了API引用(),但没有找到它。它来自C源代码。它无法调优。我们可以更改它,但首先需要了解它的制作原因。请尝试更新pykd bootstarpper:
 client->GetOutputMask(&oldMask);  
 client->SetOutputMask(DEBUG_OUTPUT_NORMAL|DEBUG_OUTPUT_ERROR|DEBUG_OUTPUT_WARNING|DEBUG_OUTPUT_DEBUGGEE );