gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:52:16 35 4
gpt4 key购买 nike

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

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 */ }

你得到这个输出:
(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 中的逐步调试在我看来令人困惑。

最佳答案

没有办法做到这一点。

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

这种事情就是GIGO的一个案例。 gdb 几乎受编译器发出的行表的支配。也许它甚至是一个 GCC 错误,但您必须深入研究所有血腥细节才能确定。

关于gcc - Gdb 在退出作用域时跟踪变量的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203293/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com