我的问题是我们的pdb文件仅适用于主要版本(不幸的是)。这是一个日常生活,我可以重建自己,但我正在错误地跳起来。
带有!sym嘈杂:image header不匹配内存图像头。
DBGENG:C:\ ... \XXX.dll图像头不匹配内存图像标题。 DBGENG:XXX.dll - 部分符号图像加载丢失图像信息 DBGHELP:模块未完全加载到内存中。 DBGHELP:使用调试器提供的数据搜索符号。 DBGHELP:C:\ ... \XXX.pdb - 不匹配的pdb注意我已经使用dll构建了pdb,它们来自同一个RELEASE目录(应该正在构建调试?)
这些是发布版本(作为发布版本我应该用某种方式使用debug build dll来获取更多的符号信息?
解决方案根据我的经验可能不是。
如果您具有完整的构建目录,并使用完全相同的编译器设置构建,那么这可能会起作用。您绝对不能从调试版本加载符号到发布崩溃转储。
您将需要打开加载任何选项:.symopt + 0x40让windbg忽略时间差异。
I have a mindmp file from a target's application crash. Is it possible for me to rebuild the dll/pdb files for a version of software and have windbg load symbols correctly?
My problem is that our pdb files are only kept for major releases (unfortunately). This is a daily build, which I can rebuild myself, but I'm getting tripped up on errors.
With !sym noisy on: "image header does not match memory image header."
DBGENG: C:\...\XXX.dll image header does not match memory image header. DBGENG: XXX.dll - Partial symbol image load missing image info DBGHELP: Module is not fully loaded into memory. DBGHELP: Searching for symbols using debugger-provided data. DBGHELP: C:\...\XXX.pdb - mismatched pdbNote I've build the pdb with the dll, they are from the same RELEASE directory (should I be building debug?)
Theses are release builds (as release builds are installed on the target and crashing) should I be somehow using the debug build dlls to get more symbol information?
解决方案In my experience probably not.
If you have the exact build directory and build with the exact same compiler settings then this might work. You definitely will not be able to load symbols from a debug build against a release crash dump.
You will need to turn on the 'load anything' options: .symopt+0x40 to get windbg to ignore the timestamp differences.
更多推荐
WinDbg Dr. Watson minidump
发布评论