首页
社区
课程
招聘
Windbg如何显示stl::vector的所有值?
发表于: 2009-10-9 00:34 10704

Windbg如何显示stl::vector的所有值?

2009-10-9 00:34
10704
想在命令行下查看stl::vector<int>的所有值怎么做?
想在命令行下查看stl::vector<stl::string>的所有值怎么做?
谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
!stl  ...
2009-10-9 09:10
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢!
可是,我在使用时,碰到这样的错误:
0:000> !stl v
TryToDumpAsVector(): Failed to g_ExtSymbols->GetFieldOffset( ModuleCollection, TypeIdCollection, FirstName, &ElementOffset ) 0x80070057 [line 983]
Unrecognized type 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >' as an STL structure -- Defaulting to `dt -n (std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >) 0x12fef4`
Console!std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
+0x000 _Myproxy : 0x00394c60 std::_Container_proxy
+0x004 _Myfirst : 0x00394d00 std::basic_string<char,std::char_traits<char>,std::allocator<char> >
+0x008 _Mylast : 0x00394d38 std::basic_string<char,std::char_traits<char>,std::allocator<char> >
+0x00c _Myend : 0x00394d38 std::basic_string<char,std::char_traits<char>,std::allocator<char> >
+0x010 _Alval : std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >

其中,v是变量,类型为vector<string>
请问如何解决?
已经下载符号,XPSP3.
0:000> lm
start end module name
00400000 00466000 Console C (private pdb symbols) D:\DengYC\Projects\love\Console\Console.pdb
7c800000 7c91e000 kernel32 (pdb symbols) d:\dengyc\symbols\kernel32.pdb\34560E80F5C54175B208848EF863C5BD2\kernel32.pdb
7c920000 7c9b3000 ntdll (pdb symbols) d:\dengyc\symbols\ntdll.pdb\1751003260CA42598C0FB326585000ED2\ntdll.pdb
2009-10-9 19:25
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常奇怪啊,用:!stl s对string,是可以正确打印的。
对std::pair也支持的很好。
就是vector不行。难道与编译器有关?我用的是VS2010beta1
2009-10-9 19:50
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
经过实验,确实是编译器的问题。
看来WinDbg还不支持VC10 beta1,使用VS2008SP1编译器后一切正常!
2009-10-9 21:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
!stl在那个扩展模块里啊?
0:000> !stl
No export stl found
2009-10-11 10:41
0
游客
登录 | 注册 方可回帖
返回
//