GDB调试简介与调试配置
GDB简介GDB全称为GNU Debugger是GNU项目提供的一款命令行调试工具主要用于调试C、C 等语言编写的程序。在Linux开发中GDB是非常常用的调试工具尤其适合分析程序运行过程中的崩溃、段错误、逻辑错误以及变量变化情况。正常情况下我们运行一个程序时只能看到程序最终的执行结果。如果程序中出现错误例如数组越界、空指针访问、死循环等问题单靠输出信息往往很难快速定位问题所在。而使用GDB后可以让程序按照调试者的控制逐步执行并在执行过程中观察程序内部状态。在后面的教程与学习当中主要讲解GDB的各类基本功能包括1、断点管理2、查看与修改变量3、内存查看与修改4、寄存器查看与修改5、源代码查看与管理6、函数调用栈管理7、多线程调试8、core dump文件调试9、发行版程序调试每个小节中都会列出示例程序并逐步进行调试讲解二、开发调试环境准备因为这系列教程主要是在kubuntu24.04的环境下进行所以需要先在Linux环境下配置好开发调试环境主要用到gcc、g、gdb等软件。安装命令如下sudo apt install gcc g make gdb三、GDB调试编译选项在使用GDB调试程序之前通常需要在编译程序时添加调试符号。调试符号中保存了源代码和可执行程序之间的对应关系例如变量名、函数名、源文件名、代码行号等信息。如果没有调试符号程序仍然可以被GDB启动但是调试体验会非常差。可能只能看到汇编指令、内存地址和部分函数地址而无法准确显示源代码行号也无法方便地查看变量名。例如下面是一个普通的编译命令gcc main.c -o main这种方式生成的可执行程序通常不包含完整的调试信息。为了让GDB能够更好地调试程序需要加上-g选项gcc -g main.c -o main在实际开发中为了让调试结果更容易理解通常还会关闭编译优化。例如gcc -g -O0 main.c -o main其中-O0表示关闭优化。因为开启优化后编译器可能会调整代码执行顺序、内联函数、删除未使用变量等这会导致GDB中看到的执行过程和源代码不完全一致。因此在学习和调试阶段常用的编译方式是gcc -g -O0 main.c -o main

相关新闻

7 天收割 18000 星,GitHub 本周头号黑马诞生

7 天收割 18000 星,GitHub 本周头号黑马诞生

7 天收割 18000 星,GitHub 本周头号黑马诞生 每周日早上,我都会刷一遍 GitHub Trending。这周的榜单有点猛——一个叫 OpenMontage 的项目 7 天涨了 18000 颗星,直接把第二名甩出两倍身位。 我发现我已经使用了其中的两个: codeba…

2026/6/29 19:11:02阅读更多 →
深入解析EASY-HWID-SPOOFER:内核级硬件信息修改技术实现

深入解析EASY-HWID-SPOOFER:内核级硬件信息修改技术实现

深入解析EASY-HWID-SPOOFER:内核级硬件信息修改技术实现 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER EASY-HWID-SPOOFER是一款基于Windows内核模式的硬件信息欺骗工…

2026/6/29 19:06:01阅读更多 →
技术决策树的选择路径分析

技术决策树的选择路径分析

技术决策树的选择路径分析:智能决策的关键逻辑 在技术开发与系统设计中,决策树作为一种直观的模型,能够通过条件分支帮助团队高效选择最优方案。无论是算法优化、架构设计还是工具选型,决策树的选择路径分析都能将复杂问题拆解为…

2026/6/29 21:47:30阅读更多 →
零基础 Vibe Coding 教程 AI 编程的完整流程 33-36

零基础 Vibe Coding 教程 AI 编程的完整流程 33-36

零基础 Vibe Coding 教程 AI 编程的完整流程 33-36 一、参考资料 【零基础Vibe Coding教程,vibecoding实战,Claude CodeCodexCursor】 https://www.bilibili.com/video/BV1RPET6tEp2/?p33&share_sourcecopy_web&vd_source855891859b2dc554eace9…

2026/6/29 21:47:30阅读更多 →
百度文库文档免费获取工具:127行代码实现高效自动化解决方案

百度文库文档免费获取工具:127行代码实现高效自动化解决方案

百度文库文档免费获取工具:127行代码实现高效自动化解决方案 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 还在为百度文库的付费文档而烦恼吗?面对心仪的学习资料、工作模…

2026/6/29 21:47:30阅读更多 →
阿里云盘Refresh Token获取终极指南:三步扫码解锁云盘自动化能力

阿里云盘Refresh Token获取终极指南:三步扫码解锁云盘自动化能力

阿里云盘Refresh Token获取终极指南:三步扫码解锁云盘自动化能力 【免费下载链接】aliyundriver-refresh-token QR Code扫码获取阿里云盘refresh token For Web 项目地址: https://gitcode.com/gh_mirrors/al/aliyundriver-refresh-token 阿里云盘Refresh To…

2026/6/29 21:47:30阅读更多 →
逻辑严谨吗?8款AI论文写作软件排行榜,毕业冲刺必备!

逻辑严谨吗?8款AI论文写作软件排行榜,毕业冲刺必备!

论文选题总找不到方向?文献综述写得杂乱无章?查重修改反复折腾却效果不佳? 别担心!AI论文写作工具正在成为高校学生的高效帮手。本文将从学术规范性、文献整合能力、格式自动生成、查重优化效果四个维度,深度测评8款热…

2026/6/29 21:47:30阅读更多 →
暗黑破坏神2存档编辑器:5分钟掌握免费D2/D2R游戏存档修改

暗黑破坏神2存档编辑器:5分钟掌握免费D2/D2R游戏存档修改

暗黑破坏神2存档编辑器:5分钟掌握免费D2/D2R游戏存档修改 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经因为暗黑破坏神2存档损坏而痛失珍贵装备?或者想要测试不同build却不想花费数小时重新练…

2026/6/29 21:42:28阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/29 3:27:55阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/29 2:19:08阅读更多 →
如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump 还在为3D建模中的纹理制作而烦恼吗?…

2026/6/29 0:01:47阅读更多 →
OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单! 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCA…

2026/6/29 0:01:47阅读更多 →
终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否厌倦了Windows 11系统自带的20…

2026/6/29 0:01:47阅读更多 →