使用WinDbg转储STL字符串

jak*_*sch 2 windbg

我不能再用WinDbg转储STL字符串了 - 我曾经能够使用命令转储STL字符串:dt -r (MSVCP90!string) address或者用于宽字符串dt -r (MSVCP90!wstring) address.不幸的是我不能再这样了 - 我有一个符号路径,当我列出模块时,它显示为MSVCP90加载了符号:

74110000 7419e000 MSVCP90 (pdb symbols) x:\symbols\msvcp90.i386.pdb\A23D796E66BB430B891568A6EF0C750C1\msvcp90.i386.pdb

当我执行命令时,我得到的输出是这样的:

0:025> dt -r (MSVCP90!string)
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: MSVCP90!string                                ***
***                                                                   ***
*************************************************************************
Symbol MSVCP90!string not found.
Run Code Online (Sandbox Code Playgroud)

我的符号路径设置如下:

0:025> .sympath
Symbol search path is: srv*X:\Symbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*x:\symbols*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)

我找到了SDbgExt扩展,但从我读到的是7.0版本的运行时 - 这是9.0.

有没有人知道为什么这个功能已经停止工作?没有它我真的活不下去!

谢谢!

编辑:为了更好的衡量,我也尝试启用嘈杂的符号模式.我得到了这个输出:

0:025> .reload /f MSVCP90.dll
DBGHELP: MSVCP90 - public symbols  
         x:\symbols\msvcp90.i386.pdb\A23D796E66BB430B891568A6EF0C750C1\msvcp90.i386.pdb
Run Code Online (Sandbox Code Playgroud)

所以看起来我的符号很好.

Ber*_*rni 6

你也可以使用

!stl <name>
Run Code Online (Sandbox Code Playgroud)

来自文档:

!stl扩展显示一些已知的标准模板库(STL)模板.此扩展目前支持以下类型的STL模板:string,wstring,vector<string>,vector<wstring>,list<string>,list<wstring>,和指针任一前述类型的.