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 命令补全键

 

 

 

 

 

 

你可能感兴趣的:(java基础,操作系统,汇编语言,jvm)