GDB用法小结

来源:互联网 发布:移动端价格区间滑块js 编辑:程序博客网 时间:2024/05/17 10:53

 GDB用法小结

1. gdb exe
   使得exe程序运行在debug环境下
2. break functiona
   在functiona函数处设置端点
3. run
   让程序从main入口执行到断点functiona
4. n
   next,单步执行,相当于VC中的调试命令step over
5. s
   step into,进入子函数,察看子函数的执行情况

6. bt
   backtrace查看堆栈的情况

7. p variant
   print出变量variant的值
8. l
   list命令,查看当前的行的上下文,默认显示10行

9. p variant=correct value        
   如果发现此时的variant的值不正确,我们可以给variant设置一个正确的值(correct value)
   然后,用第10项中的命令继续执行

10. c
   continue 继续执行,可以是经过按照更改后的值继续执行。相当于VC中的F5

11. quit or Ctrl+C
    退出gdb
   
 在gdb的命令行下,可以通过file exeprogram 载入要debug的文件
 gdb -silent 表示不提示GDB的版权信息 or gdb -q (quiet)
 gdb -h     显示gdb的帮助
 
 12 About Help
 gdb>help
 
 apropos args //查找所有的GDB命令以及它的文档中包含args的表达式
 complete i   //列出所有以i开头的gdb命令
 针对某一个命令的帮助是help command ,例如help info
 显示info的用法,info 可以查看args,breakpoints,stack......
 show命令只要是显示gdb的信息,如show version
 
 13  break
   break function
   在某一个函数的地方设置端点
   break linenum
   在确定的某一行的地方设置断点
   break +offset
         -offset
  
   break *address在某一个地址设置断点
        
14 watch
   watch expr
   查看某一个表达式
   rwatch expr
   查看某一个表达式,并在读入该表达式的时候,设置断点
  
 
15  查看源代码
   list lineNum  在lineNum的前后源代码显示出来
   list +  列出当前行的后面代码行
   list -  列出当前行的前面代码行
   list function
   set listsize count
       设置显示代码的行数
   show listsize
        显示打印代码的行数
   list first,last
        显示从first到last的源代码行

16  编辑源代码
    edit  编辑当前所在的行
    edit num
    edit function 编辑包含函数定义的文件
    edit filename:function
  设置编辑器
    EDITOR=/usr/bin/vi
    export EDITOR
    gdb ....
              
                  
 
 Question
 1)no symbol table is loaded!
   A: 编译后的二进制文件没有包含debug信息,重编译加上-g选项,gcc -g         

原创粉丝点击