文章目录

  • 注意
  • 1、在gcc编译过程中一定要加入选项 `-g`;
  • 2、只有在代码处于`运行`中在`暂停`状态时才能查看变量值;
  • 3、设置断点后,程序在指定行之前停止。
  • 总结
  • 主要内容
  • 1、将当前目录下的`myself.h`文件移动到`/usr/include/`文件夹下
  • 2、搜索 `/usr/include/my*`路径下 以`my`开头的所有文件
  • 3、gdb调试代码
  • 3.1 进入gcb编译模式
  • 3.2 查看源代码 `l` (是小写的L)
  • 3.3 设置断点 Break `b`
  • 3.3.1 设置行断点
  • 3.3.2 条件断点
  • 3.3.3 设置函数断点
  • 3.3.4 断点后按照预设的变量值运行
  • 3.4 查看设置的断点`info b`
  • 3.5 删除断点 Delete `d 断点号`
  • 1.指定单个断点
  • 2.所有点断 `d`
  • 4、运行 调试 Run `r`
  • 4.1 直接运行 到断点处停
  • 4.2 单步执行 Next `n` 并 查看值的变化Print `p`
  • 4.3 Continue 到断定后,继续往下运行`c`
  • 4.4 Step 跳入函数内部进行单步 `s`
  • 5、查看当前变量的值 `p 变量名`
  • 6、退出gdb调试 Quit `q`
  • 每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。


注意

1、在gcc编译过程中一定要加入选项 -g

2、只有在代码处于运行中在暂停状态时才能查看变量值;

3、设置断点后,程序在指定行之前停止。

总结

常用命令
l 查看源代码
b 行号 或函数名或f条件(==10)
info b 查看断点
d 断点号 d 无 删除所有断点
r 运行
p 变量名 查看变量值
set var变量名=变量值_新
S 进入函数内单步
n 不进入函数内单步
C 继续运行
q 退出gdb

主要内容

1、将当前目录下的myself.h文件移动到/usr/include/文件夹下

sudo mv myself.h /usr/include/

2、搜索 /usr/include/my*路径下 以my开头的所有文件

ls -l /usr/include/my*

3、gdb调试代码

  • gcc 语法错误
  • gdb 算法错误

3.1 进入gcb编译模式

要使用gdb编译器调试代码,执行gcc时要用操作-g

gcc f_gdb.c -g -o f_gdb

相当于是给了这个文件1个标注,这样才能使用下面这条语句调试

gdb f_gdb

Linux打断点执行python脚本_运维

3.2 查看源代码 l (是小写的L)

1、每次查看10行代码

l

2、 也可以指定行号,查看第Number行 前后共10行的代码

l Number

3.3 设置断点 Break b

3.3.1 设置行断点

Linux打断点执行python脚本_linux_02


假设我要在这行设置断点,fun()就不会被执行

b 13

Linux打断点执行python脚本_运维_03

3.3.2 条件断点
b 行数 if 判断语句

Linux打断点执行python脚本_运维_04

运行到 i=10时,再执行断点命令

3.3.3 设置函数断点
b 函数名

Linux打断点执行python脚本_linux_05

3.3.4 断点后按照预设的变量值运行
set var b=4

Linux打断点执行python脚本_运维_06

多了 4

3.4 查看设置的断点info b

info b

Linux打断点执行python脚本_服务器_07


断点在文件f_gdb的main中 第13行

3.5 删除断点 Delete d 断点号

1.指定单个断点

Linux打断点执行python脚本_变量名_08

d 1
2.所有点断 d
d

4、运行 调试 Run r

4.1 直接运行 到断点处停

r

停在该处,此时该处还未执行

Linux打断点执行python脚本_linux_09

4.2 单步执行 Next n 并 查看值的变化Print p

n

Linux打断点执行python脚本_运维_10

4.3 Continue 到断定后,继续往下运行c

c

Linux打断点执行python脚本_运维_11

此时停在了第2个断点处

4.4 Step 跳入函数内部进行单步 s

s

Linux打断点执行python脚本_linux_12

5、查看当前变量的值 p 变量名

p varNum

Linux打断点执行python脚本_变量名_13

6、退出gdb调试 Quit q


每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。