欢迎来到Linux调试世界!本文将带你全面了解并掌握gdb和cgdb这两款强大的调试工具。无论你是编程新手还是资深开发者,调试教程总能帮你快速定位并修复代码中的问题。作为Linux调试器的标杆,gdb(GNU Debugger)提供了命令行接口,而cgdb则为它增加了友好的代码浏览界面。
在大多数Linux发行版中,你可以通过包管理器轻松安装:
# Debian/Ubuntusudo apt install gdb cgdb# RedHat/CentOSsudo yum install gdb cgdb# Arch Linuxsudo pacman -S gdb cgdb 创建一个简单的C程序 buggy.c,包含一个除零错误:
#include int divide(int a, int b) { return a / b;}int main() { int x = 10, y = 0; printf("Result: %d\n", divide(x, y)); return 0;} 使用-g选项编译以保留调试信息:gcc -g -o buggy buggy.c。然后启动gdb:gdb ./buggy。
进入gdb后,可以执行以下常用命令:
list 或 l:查看源代码。break divide 或 b divide:在函数divide入口设置断点。run 或 r:运行程序。next 或 n:单步执行,跳过函数内部。step 或 s:步入函数内部。print a 或 p a:打印变量a的值。backtrace 或 bt:查看函数调用栈。continue 或 c:继续运行至下一断点。quit 或 q:退出gdb。例如,设置断点后运行,程序会在divide处暂停,此时可以用print a, b查看参数,发现b=0,这就是除零异常的原因。
cgdb 是gdb的一个前端,它分屏显示:上半部分是代码窗口(可高亮当前行),下半部分仍然是gdb命令窗口。启动方式:cgdb ./buggy。下图展示了cgdb的典型界面:
~/.cgdb/cgdbrc。启动cgdb后,在命令窗口输入break divide,然后按ESC进入代码窗口,可看到divide行被高亮标记。按i返回命令窗口输入run,程序停在divide处,代码窗口对应行变色。此时可以用print a, b查看变量,用next单步。整个过程比纯gdb更直观。
除了基础命令,gdb还支持条件断点(break divide if b==0)、监视点(watch x)、查看内存(x/10x &a)等。多线程调试时可以用info threads和thread apply。掌握这些技巧能让你成为调试高手。
本文从零开始介绍了gdb和cgdb的安装、基本命令和实战示例。希望通过这篇调试教程,你能熟练运用这两款Linux调试器,提高开发效率。记住,调试不仅是修复错误,更是理解代码执行过程的最佳途径。
本文由主机测评网于2026-03-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260330469.html