相关疑难解决方法(0)

防止GDB进入函数(或文件)

我有一些这样的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类的任何功能".

有谁知道如何做到这一点?

gdb

25
推荐指数
2
解决办法
6969
查看次数

如何在使用gdb的Qt Creator中调试时避免输入库的源文件?

如何配置Qt Creator和/或gdb,以便在使用Qt库调试程序时调试器可以避免插入Qt的源文件?

c++ debugging qt gdb qt-creator

24
推荐指数
1
解决办法
4933
查看次数

告诉gdb跳过标准文件

我正在使用GDB调试C++代码,当它进入包含标准库对象的某个对象的构造函数时,它会向我显示这些对象的构造函数(如std::map)和下面的所有内容.

我知道next运算符,但我更喜欢基本上黑名单任何标准库代码,这从来不是我正在调查的错误的来源.希望的行为是,一个简单的skip将发送给我下一个"用户土地"代码.

c++ gdb

12
推荐指数
2
解决办法
4196
查看次数

删除C++ - STL/Boost调试符号(...或不创建它们)

Linux/Gcc/LD - 工具链.

我想从库和可执行文件中删除STL/Boost调试符号,原因有两个:

  1. 对于大型程序,链接变得非常慢
  2. 调试跳转到stl/boost代码,这很烦人

对于1.增量链接将是一个很大的改进,但AFAIK ld不支持增量链接.在1999 dr.dobb的期刊中有一个解决方法"伪增量链接"(不再在网络中,但在archive.org(想法是将所有内容放在动态库中,并将所有更新的目标文件放在第二个中)首先加载)但这不是一般的解决方案.

对于2.有一个脚本在这里,但一)它并没有为我工作(它没有删除符号),B),它是非常缓慢的,因为它工作在管道的末端,而这将是更有效的去除先前的符号.

显然,其他调试符号应保持不变.

c++ debugging stl

5
推荐指数
1
解决办法
2650
查看次数

标签 统计

c++ ×3

gdb ×3

debugging ×2

qt ×1

qt-creator ×1

stl ×1