1

调试步骤:

  1. 启动调试:gdb 可执行程序
    1. 查看源代码:l (L的小写;只写l的话就只查看可执行程序里包含main.c的文件)
      Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      1. 如果想查看其他的文件:l 其他文件:查看的文件第几行
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
                                               l 其他文件:函数
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
                              想查看后续的内容按l (默认显示10行)(回车,重复上面的命令)
    2. 设置断点:
      1. break 想设置的断点行数  (b 想设置的断点行数)
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      2. 设置条件断点:b 想设置的断点行数 判断条件
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb(在15行设置一个断点,在该断点停下的条件是变量i等于15)
      3. 查看断点信息 info b (i b)
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb(Enb 表示当前断点是否可用,可用为y,不可用为n)
    3. 开始调试:start (不过只执行一步)
      1. 单步调试:n
      2. 执行到断点:c
      3. 进入到函数体内部:s
      4. 查看想要查看函数体的源代码:l (注意如果其中有中文,则是乱码)
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      5. 查看对应变量的值:p 变量名
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      6. 查看类型:ptype 变量
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      7. 追踪变量的值:
        1. display 变量
          Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
        2. 去除追踪变量: undisplay 变量编号
          Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      8. 跳出单次循环:u (比如你进入了一个循环内部,通过u就可以直接跳出循环)
      9. 跳出当前函数(从进入的函数体内部跳出来):finish(如果你进入的函数体里有断点,那么不会让你跳出来, 需要删除相应的断点。)
      10. 删除断点:d 断点编号
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
      11. 设置变量的值:set var 变量=值
        Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb
    4. 直接运行程序:run (r;遇到断点就会停止)
    5. 退出:quit

2 总结

Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb

Linux(本笔记基于的版本为Ubuntu 14.04)- 17 gdb

相关文章:

  • 2021-12-19
  • 2021-07-08
  • 2021-07-11
  • 2021-06-16
  • 2022-12-23
  • 2021-09-14
  • 2021-12-11
  • 2021-06-06
猜你喜欢
  • 2021-10-20
  • 2021-07-13
  • 2021-10-29
  • 2021-06-04
  • 2021-05-13
  • 2021-05-05
  • 2021-07-31
相关资源
相似解决方案