linux中gcc如何debug
linux中gcc如何debug详细介绍
在 Linux 系统里,借助 GCC 编译器和 GDB 调试器,你可以对 C 或 C++ 程序进行调试。下面为你介绍基本的调试步骤:
1. 编译程序时加入调试信息
在编译代码时,要使用-g选项,这样 GCC 就会把调试信息嵌入到可执行文件中。示例如下:
bash
gcc your_program your_source_file.c
上述命令把your_source_file.c文件编译成可执行文件your_program,并且添加了调试信息。
2. 启动 GDB 调试器
使用以下命令启动 GDB 调试器,同时加载可执行文件:
bash
gdb your_program
3. 在 GDB 中进行调试
进入 GDB 后,你可以运用以下常用命令开展调试工作:
- 设置断点:使用
break命令在代码的特定行或者函数处设置断点。
plaintext
(gdb) break main(gdb) break your_function
(gdb) break 10 # 在第10行设置断点
- 运行程序:使用
run命令来启动程序运行,程序会在遇到断点时暂停。
plaintext
(gdb) run
- 单步执行:使用
next命令逐行执行代码,不会进入函数内部;使用step命令也能逐行执行,但会进入函数内部。
plaintext
(gdb) next(gdb) step
- 继续执行:使用
continue命令让程序继续运行,直至遇到下一个断点。
plaintext
(gdb) continue
- 打印变量值:使用
print命令打印变量的值。
plaintext
(gdb) print your_variable
- 查看调用栈:使用
backtrace命令查看当前的函数调用栈。
plaintext
(gdb) backtrace
4. 退出 GDB
当调试结束后,使用quit命令退出 GDB。
plaintext
(gdb) quit
示例
假设你有一个简单的 C 程序test.c:
c
a b
a b
x
y
result x y
result
你可以按照以下步骤进行调试:
- 编译程序并添加调试信息:
bash
gcc test.c
- 启动 GDB:
bash
gdb
- 设置断点并运行程序:
plaintext
(gdb) break add(gdb) run
- 单步执行并查看变量值:
plaintext
(gdb) step(gdb) print a
(gdb) print b
- 继续执行直到程序结束:
plaintext
(gdb) continue
- 退出 GDB:
plaintext
(gdb) quit
912(gdb) quit
通过以上步骤,你就能够在 Linux 系统中使用 GCC 和 GDB 对程序进行调试了。