gdb调用正在运行的进程

来源:互联网 发布:数据港千股千评 编辑:程序博客网 时间:2024/06/05 10:01

gcc -g编译的程序



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://blog.csdn.net/maray/article/details/7226799


0 0
原创粉丝点击