我有一些这样的C++代码,我正在使用GDB:
void foo(int num) { ... }
void main() {
Baz baz;
foo (baz.get());
}
Run Code Online (Sandbox Code Playgroud)
当我进去时main(),我想介入foo(),但我想要跳过去 baz.get().
在GDB文档说,"如果有一个函数行号信息的步骤命令只进入功能",所以我会很高兴,如果我能删除行号信息,baz.get()从我的可执行文件.但理想情况下,我可以告诉GDB"永远不会进入Baz类的任何功能".
有谁知道如何做到这一点?
如何配置Qt Creator和/或gdb,以便在使用Qt库调试程序时调试器可以避免插入Qt的源文件?
我正在使用GDB调试C++代码,当它进入包含标准库对象的某个对象的构造函数时,它会向我显示这些对象的构造函数(如std::map)和下面的所有内容.
我知道next运算符,但我更喜欢基本上黑名单任何标准库代码,这从来不是我正在调查的错误的来源.希望的行为是,一个简单的skip将发送给我下一个"用户土地"代码.
Linux/Gcc/LD - 工具链.
我想从库和可执行文件中删除STL/Boost调试符号,原因有两个:
对于1.增量链接将是一个很大的改进,但AFAIK ld不支持增量链接.在1999 dr.dobb的期刊中有一个解决方法"伪增量链接"(不再在网络中,但在archive.org(想法是将所有内容放在动态库中,并将所有更新的目标文件放在第二个中)首先加载)但这不是一般的解决方案.
对于2.有一个脚本在这里,但一)它并没有为我工作(它没有删除符号),B),它是非常缓慢的,因为它工作在管道的末端,而这将是更有效的去除先前的符号.
显然,其他调试符号应保持不变.