eclipse CDT中如何手动输入gdb命令

hc000 2009-07-26 10:57:58
在eclipse CDT中调试很不方便,主要是无法查看STL容器变量的值。查了下资料,发现可以通过如下方式查看vector(其它容器类似):

第一步: 定义打印输出每个元素的方法(甚至可以写成脚本放到特定的文件中,如.gdbinit):

void dump(const vector<string> & vec)
{
int i = 0;
for( vector<string>::const_iterator iter = vec.begin(); iter != vec.end(); ++ iter )
cerr << '[' << (i ++) << ']' << " = \"" << *iter << "\"" << endl;
}

第二步:在breakpoints处调用dump打印感兴趣的vector变量:

Breakpoint 1, MatchString::placeWords (this=0xbfe49633, matchString=@0xbfe495f0,
matchWords=@0xbfe495e4) at MatchString.cpp:120
120 int m = 51;
(gdb) call dump(matchWords)
[0] = "dog"
[1] = "cat"
[2] = "rat"
(gdb)



我的问题是:在eclipse CDT中如何输入gdb命令呢?请大家指教。

...全文
753 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
drewolf 2011-01-19
  • 打赏
  • 举报
回复
二楼谢谢le
cavonchen 2009-11-06
  • 打赏
  • 举报
回复
mark up ~~~
大头贼 2009-08-10
  • 打赏
  • 举报
回复
CDT功能还是很强大的,应该不存在你说的问题吧,表达式窗口里你可以输出任何你想查看的表达式值,不过STL我没试过
控制台窗口输入命令是比较方便,但是要注意某些情况下会造成界面显示和实际的值不一致的问题
long1841 2009-08-10
  • 打赏
  • 举报
回复
对CDT不怎么熟悉。
老邓 2009-08-10
  • 打赏
  • 举报
回复
谢谢,看来CDT功能强大啊!
hc000 2009-07-27
  • 打赏
  • 举报
回复
解决了

eclipse CDT的调试窗口中就有gdb(得仔细找),点击,然后就可以在console中输入gdb命令了。

除了自己写打印函数来输出容器变量中内容,还可以用以下方法:在当前项目文件夹下新建文件.gdbinit, 然后粘贴该网页中(http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.01.txt)内容即可。要打印vector中内容,只需console中输入:
pvector v1 //假定v1是容器变量

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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