您的位置:首页 > 博客中心 > 数据库 >

gdb常用命令总结

时间:2022-03-14 02:31

1: 对于在应用程序中加入参数进行调试的方法:
參數 說明 list filename:number 列出某檔案的第幾行,檔案是可省略的。 list [function] 列出某函數的程式碼 list 繼續印出程式碼 list - 印出上一次list的程式碼的前一段程式碼(類似向上翻動) show listsize 顯示現在一次印出幾行 set listsize 設定一次印出幾行


备常用命令:
  1.常看源码:list(l) 
  list <linenumber> 行号
  list <+offset> 当前行号的正偏移
  list <-offset> 当前行号的负偏移
  list <filename:linenumber> 哪个文件的哪一行
  list <function> 函数名
  list <filename:function> 文件的哪个函数
  list <*address> 程序运行时语句在内存中的地址

 2.设置断点:break(b)
  break <function> 指定函数断点
  break <linenumber> 指定行号断点
  break <+offset/-offset> 当前行号的正/负偏移
  break <filename:linenumber> 哪个文件的哪一行
  break <*address> 运行中的内存地址
  break 不带参数,下一条指令停止处
  break ... if <condition> 在运行中,当condition条件满足时停止。
    eg. break if i=100 //当i=100时,立即停止
                 break foo if i=100   //断点设置在foo中,断点条件是i-100, 一点在函数foo中,i的值等于100,被停止。
 
                 

 3.查看信息:info
  info break 查看断点信息
    info locals 打印出当前函数中所有局部变量及其值
  info stack 查看栈中信息
    info frame 更详细的栈层地址信息
  info args 查看参数信息
  info registers/info all-registers 查看(所有)寄存器信息
  info sources 查看项目的源代码信息

4.维护breakpoint:disable/enable/clear/delete
     disable(dis) 【breakpoints】 【range...】
       如果没有参数,则停止所有的断点,
     enable 【breakpoints】【range】
     clear <function>/<filename:function>/<linenum>/<filename:linenum>
        清楚已定义的停止点
      delete [breakpoints] [ranga...]
         删除指定的断点

5.恢复程序运行:continue(c)
  
  
6.until和finish
  until 跳出循环比较有用
    help finish
     Execute until selected stack frame returns.
     Upon return, the value returned is printed and put in the value history.
  finish 用来跳出函数比较有用。
    help until 
     Execute until the program reaches a source line greater than the current
     or a specified location (same args as break command) within the current frame

热门排行

今日推荐

热门手游