GDB
GDB(GNU Debugger)是一个功能强大的调试工具,用于调试C、C++、Fortran等编程语言。它能够让你查看并控制被调试程序的执行状态,从而帮助你发现和修复程序中的错误。GDB 的主要功能包括:设置断点、单步执行、查看变量、调用栈跟踪、修改程序状态等。
GDB相关命令
安装 GDB
在大多数 Linux 发行版中,使用包管理工具安装 GDB。例如,在 Ubuntu 上,可以通过以下命令安装:
sudo apt-get install gdb
编译程序并启用调试信息
g++ -g -o my_program my_program.cpp
启动 GDB
直接在终端中启动 GDB,并载入要调试的程序:
gdb your_program
设置断点
break <location>
break main # 在 main 函数开头设置断点
break 42 # 在第42行代码设置断点
break myfile.c:42 # 在 myfile.c 文件第42行设置断点
delete <breakpoint-number>
delete 1 # 删掉指定编号的断点
info breakpoints # 列出所有断点
运行程序
run [args] # 在 GDB 中运行程序并传递命令行参数 [args]
run # 重新启动程序
单步执行
step # 执行当前源码行,如果该行有函数调用,会进入函数内部
next # 执行当前源码行,如果该行有函数调用,会跳过函数调用
finish # 返回函数调用者
until # 跳到下一断点
查看程序状态
backtrace # 显示当前线程的调用栈
info locals # 查看当前函数的局部变量
info frame # 查看当前栈帧的变量
thread <thread-number> # 切换到特定线程
调试多线程程序
info threads # 列出所有线程
thread <thread-number> # 切换到特定线程
thread apply <thread-num/any> <gdb-command> # 设置线程断点
退出调试
quit
ctrl c
Xcode调试器
Xcode调试器基于LLDB (LLVM Debugger) 提供了全面且强大的调试功能。