使用gdb调试C ++程序有哪些你最喜欢的技巧?
对所有技巧感兴趣但也
如何在gdb中调用对象上的方法(可能是虚拟的)
检查STL对象(相当打印)
使用continue
处理内联,线程,tcmalloc(或自定义分配器)
在不同会话中保留gdb命令的历史记录
答案 0 :(得分:3)
调试C ++时尝试DDD; DDD可以动态加载共享库的源代码,并在调试时显示多个变量。
答案 1 :(得分:2)
1
set print object
这样可以通过查看vtable来评估对象层次结构。所以你可以看到基类的引用/指针的类型。
2
获取系统库的调试信息或未提取的文件夹(最重要的是:pthread和libstdc ++),因为否则调试多线程应用程序在gdb中无法正常工作。
答案 2 :(得分:0)
因为我发现如何使用〜/ .gdbinit中的Hook来美化GDB的输出(列表,回溯等),我不能没有那个......
这是一个blogentry,它展示了如何美化代码输出并在注释之间添加一些“分隔符”: Beautify GDB
我也美化了我的回溯,非常有用,可以找到现在发生错误的位置......也许我会在我访问它们时上传所需的文件(我现在不在工作)< / p>