gdb

First

为调试而编译时,要加-g关键字

gcc -g test.c -o test

-g的作用是:

1、创建符号表,符号表包含了程序中使用的变量名称的列表。

2、关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

Second

gdb命令

启动和退出

  gdb 可执行程序

  quit

给程序设置参数/获取设置参数

  set args 10 20

  show args

gdb使用帮助

  help

查看当前文件代码

  list/l (从默认位置开始显示)

  list/l 行号 (从指定行显示)

  list/l 函数名 (从指定的函数显示)

查看非当前文件代码

  list/l 文件名:行号

  list/l 文件名:函数名

设置显示的行数

  show list/listsize

  set list/listsize 行数

Third

设置断点

  b\break 行号

  b\break 函数名

  b\break 文件名:行号

  b\break 文件名:函数

查看断点

  i/info b/break

删除断点

  d/del/delete 断点编号

设置断点无效

  dis/disable 断点编号

设置断点生成

  ena/enable 断点编号

设置条件断点(一般用在循环的位置)

  b/break 10 if i == 5

Fourth

运行gdb程序

  start(程序停在第一行)

  run(遇到断点才停)

继续运行,到下一个断点停

  c/continue

向下执行一行代码(不会进入函数体)

  n/next

变量操作

  p/print 变量名(打印变量值)

  ptype 变量名(打印变量类型)

向下单步调试(遇到函数进入函数体)

  s/step

  finish(跳出函数体)(需要删除后边的断点)

自动变量操作(每次向下执行都会输出被设置变量的值)

  display num(自动打印指定变量的值)

  i/info display

  undisplay 编号

其它操作

  set var 变量名 = 变量值  (在程序运行时更改变量值,使程序跳到相应的状态)

  until (跳出循环)(需要删除循环中的断点)

 

posted @ 2023-04-18 22:11  WTSRUVF  阅读(123)  评论(0)    收藏  举报