gcc与gdb的简单使用

GCC编译运行

touch filename.c 在当前文件夹创建程序文件
gcc fileName.c -o binFileName.out 在当前文件夹编译生成可执行文件,可执行文件名的后缀可以省略
./binFileName 运行编译后的可执行程序

如果直接gcc filename.c会生成一个可执行文件a.out,执行./a.out即可运行

如果想用调试器执行一个可执行文件, 在用gcc编译时必须加上-g选项:gcc -g filename.c -o filename.out
加上-g选项以后,gcc在编译是会做以下额外的操作:

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

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

GDB调试

gcc -g filename.c -o filename.out 编译
gdb ./filename.out开始调试

q 退出gdb
b main 在main函数开头设置断点
b filePath/filename.c:n 通过文件路径设置断点,n表示断点设置在代码的第n行
r 开始执行,程序停在第一个断点之前
n 单步执行,不进入函数体
s 单步执行,会进入函数体
k 结束调试
c 程序运行至下一个断点之前
info b 查看所有断点
d number1 number2... 删除断点,number是断点的序号,可以一次性删除多个断点
bt 查看函数调用栈
watch variable 监视变量,一旦变量的值发生改变就中断进程
info r 查看所有寄存器的值
⭐️p variable 调试中查看变量的值,若在p后面加上/x,显示的值为16进制
layout src/tui enable 在终端显示源代码,方便调试(方向键控制查看代码),通过tui disable/tui enable可以关闭或打开该代码显示
layout asm/tui reg 在终端查看该程序的汇编代码,通过si单步跳转(相当于于源代码程序调试中的n` )

语法糖:不输入指令,直接按回车,则执行的是上一次输入的命令

gdbinit(gdb命令脚本)

使用方法

  1. (方法一)gdb在启动的时候,会在当前目录下查找".gdbinit"这个文件,并把它的内容作为gdb命令进行解释,因此可以提前写好命令,放入当前目录中命名为".gdbinit"。

  2. (方法二)在gdb运行过程中,可以使用 source script-file 来解释gdb命令脚本script-file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值