GDB(GNU Debugger)是GNU项目的一部分,是一个强大的源代码级调试工具,主要用于调试C、C++、Go、Objective-C、Ada等语言编写的程序。它可以在类Unix系统(如Linux、BSD变体)以及其他平台上使用。GDB允许开发者逐步执行程序,设置断点,检查内存,改变变量值等,从而帮助找出程序中的错误。
GDB的主要功能:
- 启动程序:可以指定任何可以影响程序运行行为的动作。
- 停止程序:可以让程序在指定条件下停止。
- 检查状态:当程序停止时,可以检查发生了什么,例如查看变量的值、寄存器的状态等。
- 修改内容:可以更改程序中的内容,例如修改变量的值,以测试不同的程序路径。
GDB入门教程:
准备工作
- 
安装GDB: - 大多数Linux发行版已经预装了GDB,如果没有安装,可以通过包管理器安装,例如在Debian/Ubuntu中使用 sudo apt-get install gdb。
 
- 大多数Linux发行版已经预装了GDB,如果没有安装,可以通过包管理器安装,例如在Debian/Ubuntu中使用 
- 
编译程序: - 使用GCC或G++编译器时,需要加入 -g参数来生成调试信息。gcc -g -o my_program my_program.c g++ -g -o my_program my_program.cpp
 
- 使用GCC或G++编译器时,需要加入 
使用GDB
- 
启动GDB: - 运行GDB并加载你的程序作为参数。
gdb ./my_program
 
- 运行GDB并加载你的程序作为参数。
- 
列出源代码: - 使用 list命令显示源代码。(gdb) list
- 也可以指定特定的行范围,例如 list 1,10。
 
- 使用 
- 
设置断点: - 在特定的行或函数设置断点。
(gdb) break main (gdb) break 10
- 断点将在程序执行到指定位置时暂停。
 
- 在特定的行或函数设置断点。
- 
开始调试: - 使用 run命令开始运行程序。(gdb) run
- 如果设置了断点,程序会在断点处停止。
 
- 使用 
- 
单步执行: - 使用 step或next命令逐行执行程序。(gdb) step (gdb) next
- step会进入函数调用,而- next则会在函数外部执行下一步。
 
- 使用 
- 
查看变量: - 使用 print命令查看变量的值。(gdb) print variable_name
 
- 使用 
- 
继续执行: - 使用 continue命令从断点继续执行。(gdb) continue
 
- 使用 
- 
退出GDB: - 使用 quit命令退出GDB。(gdb) quit
 
- 使用 
基本命令总结
- break:设置断点。
- run:运行程序。
- step/- next:单步执行。
- print:查看变量值。
- continue:继续执行。
- list:显示源代码。
- quit:退出GDB。
这些是使用GDB进行基本调试的基础。随着经验的积累,你可以学习更多高级功能,如条件断点、查看调用堆栈、修改内存等。

 
	
 
            
发表评论