【Linux】GDB 初学指令大全

发布时间:2026/10/8 18:37:30

【Linux】GDB 初学指令大全 GDB文章目录GDB1. GDB 前置条件新建目录并 cd 进去新建并打开 mycode.c写入完整内容编译2.GDB指令对照VS 2022启动与退出看代码打断点查断点删断点 / 使能禁用运行与单步查看变量与调用栈调试中改值CGDB 分屏操作Linux 下我们编译好的代码无法直接调试gcc/g 默认的工作模式是release 模式1. GDB 前置条件新建目录并 cd 进去mkdirgdbcdgdb新建并打开 mycode.cvimmycode.c写入完整内容#includestdio.hintSum(ints,inte){intresult0;for(intis;ie;i){resulti;}returnresult;}intmain(){intstart1;intend100;printf(I will begin\n);intnSum(start,end);//[start, end]printf(running done, result is: [%d-%d]%d\n,start,end,n);return0;}敲完按Esc回到普通模式输入:wq回车保存退出。编译gcc-g-O0-stdc99 mycode.c-o mycode2.GDB指令对照VS 2022VS 2022 键GDB 命令说明F5c/continue运行到下一个断点F10n/next逐过程不进函数F11s/step逐语句进函数启动与退出命令作用gdb 可执行程序在终端启动 gdb跟可执行程序不能跟.c源文件cgdb 可执行程序启动 cgdbgdb 源码分屏命令与 gdb 完全一致quit/q退出 gdb回到 shell看代码简写作用l首次通常显示当前执行位置附近的源码之后再次输入继续显示后面的源码默认每次10行l mycode.c:1显示mycode.c第1行附近的源码位于文件开头通常显示第110行l 13显示当前文件第13行附近的源码默认约10行不一定从第13行开始l 10,20显示当前文件第1020行包含两端共11行l Sum显示Sum函数开头附近的源码默认约10行打断点命令作用b 行号在当前文件的指定行打断点最常用b 函数名在函数入口处打断点。b main:20这种写法的行号无效b 行号 if 条件打条件断点只在条件成立时触发条件两侧建议加空格condition 断点号 条件给已经存在的断点追加触发条件查断点命令作用info b列出所有断点。六列Num编号 /Type类型 /Disp是否保留 /Enb是否使能 /Address地址 /What位置删断点 / 使能禁用命令作用d 断点号删除指定断点。只能用断点编号不能用行号d 监视点编号删监视点watch和删普通断点一样只用编号disable 断点号禁用断点断点还在Enb变n不再触发。同样只能用编号enable 断点号恢复被禁用的断点Enb变回y关键规则只有打断点时要行号剩下所有对断点的控制删、禁用、恢复、加条件一律用断点编号。断点编号规则单次会话内线性递增删掉的号不复用退出重进从 1 重新开始。运行与单步命令作用r运行程序。有断点停到断点处无断点直接跑完yr时问是否重新开始答y表示重新跑c从当前断点继续跑到下一个断点停下VS 里的 F5n逐过程把函数当整体跳过一行一行走VS 里的 F10s逐语句遇到函数进到内部一行一行走VS 里的 F11finish跑完当前函数停在返回之后until 行号在当前函数内局部快速执行到指定行。不是跳转是把中间代码全跑完直接回车重复上一条命令gdb 会记住最近一条查看变量与调用栈命令作用p 变量临时打印变量的值p 表达式直接算表达式不一定只看变量display 变量常显示变量每步都自动刷新类似 VS 的监视窗口undisplay 编号取消常显示。只能用 display 编号不能写变量名info display查看当前所有常显示项及其编号Num/Value/Variableinfo locals一次列出当前函数内所有局部变量bt查看函数调用栈栈帧watch 变量监视变量值一变就主动通知并打出新旧值调试中改值命令作用set var 变量值调试过程中直接改变量值不用改源码重编译就能验证根因CGDB 分屏操作操作作用Esc从 gdb 命令行切到代码屏可用上下键翻阅源码i从代码屏切回gdb 命令行屏
延伸阅读

更多相关文章

2026/10/8 18:32:29

2026全国知识管理软件排行榜 5个核心维度实力横评

开篇速览:2026知识管理软件选型核心参考标准中国软件行业协会2025年企业级软件选型调研数据显示,68%的企业在知识管理工具选型时,最关注系统集成能力、数据安全合规性、功能与业务场景的适配度三类核心指标,当前知识分散、系统割裂…

2026/10/8 19:37:43

Python NumPy实现数组排序与过滤示例分析讲解

前言 NumPy 是第三方库,不是标准库,使用前需要 pip install numpy。本机没有 Python 解释器也没有装 NumPy,所以本文的示例无法在本机运行验证,只能逐行人工推演;函数签名、返回值和版本差异一律以 NumPy 官方文档为准…

2026/10/8 19:37:43

【人工智能】知识库是你的消化系统

【人工智能】知识库是你的消化系统摘要:知识库不是仓库,而是你的消化系统——存进去的东西必须真正变成你自己的血肉。本文对比了「仓库式」与「消化系统式」两种用法,说明往知识库中丢什么、如何逼自己想清楚,并针对学生、上班族…

2026/10/8 19:37:43

信息论基础学习笔记

《信息论基础》翟明岳|第一章 绪论 学习笔记前言:信息论之父——克劳德香农克劳德艾尔伍德香农(Claude Elwood Shannon,1919—2001),美国数学家,信息论的创始人,被誉为“信息时代之父…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑