Search code examples
windbgsymbolsdumppykd

How to get rid of symbol file related warning/error messages


I'm debugging dumpfiles, using Windbg, and regularly I'm getting warning/error messages, like the following:

*** WARNING: Unable to verify checksum for icuuc58.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for icuuc58.dll - 

In order to avoid those, I've already tried to proceed my whole processing with:

!sym prompts off
!sym quiet

But the warning/error messages keep arriving.

Edit after first reply (is confirmed in second edit)

I've done several attempts, using .outmask-6 and .outmask-206, but all of them more or less failed. What does that mean:

.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

I believe there are commands, which disable .outmask command. Can you confirm this and in case yes, is there a command like:

.outmask-206(global) (which applies for the whole Windbg session)

As far as the symsrv.ini file is concerned: I don't have this file on my computer, and honestly I prefer not to be searching for every module which symbol loading might cause problems. I'd prefer just to avoid the mentioned warning/error messages.

Edit after more insight on the issue

One thing I didn't mention yet, is the PYKD usage: I'm working on heap_stat, a script, based on PYKD, for performing memory analysis, and I believe the problem in here, as you can see in following excerpt:

Script source code:

dbgCommand(".outmask-206")
...
dprintln("1")
type_info = typeInfo(class_name)
dprintln("2")

Script output:

1
*** WARNING: Unable to verify checksum for icuuc58.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for icuuc58.dll - 

In my opinion, this means that the PYKD typeInfo() object declaration is the one, disabling the .outmask() Windbg command.

@PYKD developer: can you confirm this and if yes, add a PYKD issue for this? (I didn't see any .outmask related issue on the PYKD issues homepage)


Solution

  • Until now, there've been two answers to my question:

    • Outmasking general Windbg command output
    • Outmasking PYKD command output

    I can't use general Windbg outmasking, as I'm using PYKD commands.
    I can't use PYKD outmasking, as I'm just launching (thousands of) PYKD commands, which are, every single time, opening and closing a separate PYKD session, and configuring the PYKD outmask would slow down my application too much.

    Therefore I've decided to go for another approach: I'll make sure that the PYKD output messages' format is so specific (it will always contain a TAB character) that, instead of not using the error messages, I'll decide only to use the PYKD messages (the ones, containing the TAB characters).

    I've tested this approach and I can confirm it's working fine.

    Thanks for the help.