首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gdb在退出作用域时跟踪变量的声明

Gdb在退出作用域时跟踪变量的声明
EN

Stack Overflow用户
提问于 2013-08-13 15:39:51
回答 1查看 128关注 0票数 5

当你调试用gcc 4.8生成的代码时,你会发现每个析构函数都有它自己的"debug_line“条目。例如,如果您编译(g++文件“-g”)并调试(gdb a.out)此程序:

代码语言:javascript
复制
class C {
public:
  C() {}
  ~C() {}
  int m() { return 0; }
};

/*  7 */ int main() {
/*  8 */   C a;
/*  9 */   C b;
/* 10 */   C c;
/* 11 */   return a.m() + b.m() + c.m();
/* 12 */ }

您将获得以下输出:

代码语言:javascript
复制
(gdb) start
8   /*  8 */   C a;
(gdb) next
9   /*  9 */   C b;
(gdb) next
10  /* 10 */   C c;
(gdb) next
11  /* 11 */   return a.m() + b.m() + c.m();
(gdb) next
10  /* 10 */   C c;
(gdb) next
9   /*  9 */   C b;
(gdb) next
8   /*  8 */   C a;
(gdb) next

如何从跟踪中禁用这些销毁信息的输出?

我想禁用此信息,因为Qtcreator中的逐步调试对我来说似乎令人困惑。

EN

回答 1

Stack Overflow用户

发布于 2013-08-14 10:12:18

没有办法做到这一点。

gdb现在有一个“跳过”命令,可以抑制步进到某些地方。但它不会抑制函数中的nexting。

这类事情就是GIGO的一个例子。gdb在很大程度上取决于编译器生成的行表。也许这甚至是一个GCC的漏洞,但你必须深入挖掘所有血淋淋的细节才能确定答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18203293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档