在linux下用gdb调试gcc编译的代码;以及反汇编的操作

编写出.c文件后(输入vim   *.c命令,进去编写,*为随意写)

输入下面命令(假如我编的叫test.c):

gcc -g test.c -o test

gdb test //进入gdb调试界面

gdb -q test //去除软件信息进入gdb

gdb -Wall test.c -o test     //显示全部警告信息

在gdb界面中的操作:

start //开始程序

s //下一步,可进入子程序

n //下一步,不可进入子程序

回车 //执行上一次输入的指令

p/d  i //查看整形i的值

q //退出

b  10 //断点跳转到第10行

run //跳到断点处显示

set args 123 000 //设置要输入的argv的值,回车后下一步为run,可设置断   点到argv传值结束后的语句

================================================================

反汇编:

gcc -c main.c -o main.o //编译main.c文件,生成main.o编译文件

objdump -d main.o //反汇编main.o文件

Linux终端中使用GDB(GNU Debugger)调试程序是一个强大的工具,它允许开发者逐行跟踪代码,查看变量值,设置断点等。以下是基本的步骤: 1. **编译调试信息的程序**: 在源代码目录下,添加 `-g` 或 `--debug` 选项到编译命令中,例如: ``` gcc -g my_program.c -o my_program ``` 2. **启动GDB**: 运行 `gdb` 命令后指定你要调试的程序名: ``` gdb my_program ``` GDB将连接到你的程序并在运行前暂停。 3. **设置断点**: 输入 `break` 然后跟随函数名、行号或特定的条件表达式设置断点,例如 `break function_name` 或 `break line_number`。 4. **运行程序**: 使用 `run` 或者 `r` 命令启动程序。如果你希望步进执行,可以尝试 `next`, `step` 或 `continue`。 5. **单步调试**: - `next`: 执行当前行直到遇到下一个可执行语句。 - `step`: 进入函数内部。 - `continue`: 持续运行直到遇见下一个断点或程序结束。 6. **查看变量值**: - `print variable_name`: 显示变量的当前值。 - `info locals`: 查看当前函数内的局部变量。 7. **退出调试模式**: 当你想退出调试时,输入 `quit` 或 `q`。 8. **保存和退出**: 对于复杂的调试过程,你可以定期保存状态(`save`),完成后通过 `quit` 退出GDB。 记住,GDB提供很多高级功能,如条件断点、watchpoints、反汇编分析等,熟悉命令行选项有助于提高调试效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值