`
java-mans
  • 浏览: 11434176 次
文章分类
社区版块
存档分类
最新评论

gdb调试常用命令,attach,br,n,bt

 
阅读更多

在Oceanbase调试中,必须用到gdb,将常用命令搜集记录如下:

1. attach: 用gdb调试一个正在运行中的进程
gdb <program> PID

2. br: 设置断点
br filename:line_num

br namespace::classname::func_name

3. n: 单步跳过 s: 单步进入

4.finish:执行到函数retun返回

5. list: 列出当前位置之后的10行代码;list line_number: 列出line_number之后的十行代码

6. bt(backtrace):列出调用栈

7. info locals:列出当前函数的局部变量

8. p var_:打印变量值

9. info breakpoints:列出所有断点

10. delete breakpoints:删除所有断点;delete breakpoints id:删除编号为id的断点;disable/enable breakpoints id:禁用/启用断点

11. break ... if ... 条件中断


C++中用GDB调试的注意事项:

1. 函数断点的结构是namespace::ClassName::funcName

(gdb) b oceanbase::mergeserver::ObMsSqlScanEvent::process_result
Breakpoint 1 at 0x435c0a: file ob_ms_sql_scan_event.cpp, line 533.


还有一个小问题,网上很少提到:被调试的程序必须和源码放在同一台机器上,才能用list命令列出源码,否则提示找不到。


直接回车,总可以重复执行上一个命令。

参考:http://baigoogledu.blog.51cto.com/738227/153948

涉及到多线程调试,参考:http://wenku.baidu.com/view/ab2b0623bcd126fff7050ba0.html


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics