此贴用来大家共同学习:征集STL容器调试技巧!!!!!

vcmfc 2002-05-07 12:53:55
本人无意中在网上见有位网友提问如何调试STL,他的要求是:在VC里,如果我们定义一个数组,那么在调试器的watch里就可看到其内容,可如果是STL容器,如何能看到呢???


我试了一下,目前我所知的,发现只能通过打开memory输入地址来看,而且还必须做一个其它工作,才能看到期内容,如:vector<int> k;此时k里有12234,3456的两个者,通过k得到vector里的存放数据起始地址(watch可看到),此时用memory定到指定地址,再把4个字节的16进制数据换成10进制,真是faint,如果是vector<string>,更是头痛,还有list,deque,set,map.....,不知大家有没有更好的方法来显示指定容器的内容呢????


希望大家说说自已的心得,也请这方面的大哥大姐们发表大作!!!!
...全文
105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
babysloth 2002-05-08
  • 打赏
  • 举报
回复
似乎可以考虑考虑做点什么,这是个好提议:-)
gigix 2002-05-08
  • 打赏
  • 举报
回复
这个问题我也想过,没想出办法,呵呵。
vcmfc 2002-05-08
  • 打赏
  • 举报
回复
VC7也一样,不过通过memory窗口可以推出第二item,对于简单还可以,但简单还可以,类就麻烦了。


竟然没有人?????
anrxhzh 2002-05-08
  • 打赏
  • 举报
回复
应该是无解的。
从本质上讲,调试器只能察看内存地址,之所以在IDE环境中可以直接查看变量的值,是由于通过编译器生成的符号表可以查出对应的内存地址。而访问STL容器中的元素是一个语法操作,调试器是不可能理解的。

canco 2002-05-07
  • 打赏
  • 举报
回复
在VC调试器中是不能直接看到其各项内容,只能看到第一项的内容,我一般是临时写一函数,把每项赋值到一临时变量中,然后看临时变量,不知VC7.0怎么样?
veinstone 2002-05-07
  • 打赏
  • 举报
回复
当然,自己写一个模板函数最好。
vcmfc 2002-05-07
  • 打赏
  • 举报
回复
到少我用土方法可以看到一部分,就是memory窗口,不要太麻烦了。


不知有没有简单的方法???
seanzhao 2002-05-07
  • 打赏
  • 举报
回复
不大可能用watch实事看,我一般写个Dump函数输出到cout或文件中.

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧