GDB常用调试命令

r    运行程序(只在第一个断点处暂停程序)

c    继续执行  (在每个断点处停下来)

i b  列出所有的断点以及断点信息     (info breakpoints) 【快捷方式 :  i  +   b  +  Tab键(补全) 】

b <函数名 | 行号 | 地址>  打断点

s   单步进入(step into遇到函数进入)      s   <函数名 | 行号 | 地址>追踪到指定点

n   单步追踪(step over遇到函数不进入)

d  <函数名 | 行号 | 地址> 删除断点              d  删除所有断点

diplay /i $pc   列出每一步的汇编的信息      (取消显示汇编的信息---------------   undisplay)

p <变量名>    打印变量或全局变量的名称      p *a@10   ----------打印数组a的10个元素     p x=4 修改运行时变量x的值为4  ,print &x 打印x的地址,print *address打印地址的详细值

l 16 列出16行附近的代码         l file :N查看指定文件的代码

     

#l命令大全:

l +    往后显示源代码    l - 往前显示源代码

l <函数名>   列出函数名的原代码

set listsize 30    一次显示源代码(30行)

search <查找内容>  向下查找          rev <查找内容>  向上查找  

pwd   显示当前代码所在的文件路径          dir <要添加的路径位置> 添加gdb的查找路径        cd <要切换的路径位置> 切换当前gdb的代码调试的路径

bt      回溯命令(backtrace)      打印出函数调用栈的信息-------------(它还显示了函数所在的文件路径,及函数所在的行号)

/**备注:

1.Working directory /usr/lmj/openjdk7/openjdk/build/bin.  我运行的是/usr/lmj/openjdk7/openjdk/build/bin/java  的二进制代码

2.../../../../src/share/bin/main.c:100   程序的源代码在根目录下:/usr/lmj/openjdk7/OpenJDK/src/share/bin/main.c:100

3.main (argc=5, argv=0x7fffffffe538)    argc  

*/

finish  跳出函数,结束循环            until   【简写: u    -----结束当前循环】

j 5 跳转执行到第五行(堆栈内容不会变------因而慎用。)

 

Enter键执行上一个命令     Tab 命令补全键

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值