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