gdb手册
0 前言 无论是PC还是嵌入式Linux应用开发,GDB是不可或缺的试工具,本文总结一些常用技巧。1 本地调试 PC调试,就是调试PC上的程序。1.1 程序(1)编译参数 使用gcc编译程序,为了使用gdb进行调试,加上选项-g:gcc -g test.c图1.1 add-symbol-file(2)加载程序 先启动gdb工具,然后使用file命令加载需要调试的程序:gdb # 启动gdb工具 file a.out # 加载程序a.out # or gdb a.out(3)调试进程 如果想调试系统开机启动的进程(例如窗口管理器)怎办呢?可通过下面方法之一进行调试:方法1:--pidgdb --pid PID # 例如 gdb --pid `pidof ukwm` # 调试UbuntuKylin-22.04管理器,注:需SSH远程登录来执行该命令以避免界面卡住无法操作方法2:attachgdb attach PID # 也可先启动gdb,再执行attach命令,相反命令为detach[31]注:上述两种方法的效果都是一样的,都可通过detach命令取消调试;尝试attach D状态(可通过“pid -p PID”确认)进程会卡死[25]!1.2运行 加载程序后,可以使用start或run命令运行:start # 单步运行 # or run # 可用简称“r”代替,完整运行1.2.1 参数方法一set args 参数 run方法二run 参数 # “run”可简化为“r”1.2.2 暂停 “Ctrl - C”默认会暂停被调试程序的执行。1.2.3 继续 设置断点后,可以使用c命令继续从断点处开始执行程序(使用r命令会使得程序重新运行)c # continue1.2.4 单步(1)C/C++ 可以使用n、s命令进行单步调试,其中后者为step in,会跳进调用的函数里面:s # step, (step in) n # next, (step over)(2)汇编 汇编级别的单步可通过ni、si命令进行,其中后者会进入汇编和C函数内部[34]。1.2.5 退出quit # 退出gdb1.3 断点(1)增加 增加端点的方式有多种,详见下面第1.3.1、1.3.2、1.3.2小节。(2)禁止/使能disable id enable id(3)删除d id # 删除编号为id的断点 d # 删除所有断点 clear # 清除所有断点 clear id # 清除第18行处的断点 clear func1 # 清除函数func1处的断点(4)查看info b # 查看当前设置的所有断点 # or i b 结果中的“Enb”列的值表示该断点是否使能(y/n):图1.2 断点使能状态1.3.1 普通断点# 函数名 b func_name # 在函数func_name处设置断点,C++还需指定类名,例如“RenderThread::main” # 代码行 b 18 # 在第18行处设置断点 b test.c:8 # 在src/main.cpp的第18行处设置断点[23] C++ new操作符也可以设置断点:b operator new注:在指定该断点行代码之前停止执行,而不是执行完毕再停止,该特性直接影响后面热补丁,如果需要执行断点行代码,需要添加next指令。1.3.2 条件断点# 单条件 b test.c:8 if a==10 # 当i变量等于10时断点[23][24] # 双条件 b test.c:8 if (a==10 b==10) # 当i变量等于10时断点[23][24]1.3.3热补丁 遇到断点之后可以设置一些自动执行的命令以实现热补丁效果[46],用于临时解决bug或验证问题:b func_name commands 1 # 该序号是变化的,上述“b”命令会提示 printf "parameter a = %d\n",a set var a=10 # 改变函数形参值,函数内局部变量貌似设置不了 printf "parameter a changed to %d\n",a jump 26 # 跳转到第26行执行 continue end 在补丁中可以设置、查看变量,还可以改变执行流程(next、jumb、continue、return、finish)。(1)设置 除了改变变量值,还可以设置跳转(jumb)等(详见参考资料[46]);(2)查看 除了打印变量值,还可以查看函数地址对应的函数名(详见第1.10小节)。1.3.4动态打印手动:程序到了断点位置暂停下来后,手动执行p或display命令将变量打印出来自动:通过dprintf命令添加自动打印(打印完毕后程序不暂停,而是继续执行)[47],打印位置的指定方法同前面“b”命令(可通过行号、文件名+行号、函数名等方式指定打印位置),格式化打印类似printf()函数,例如:(1)存粹打印函数名dprintf QueueKeyboardEvents,"QueueKeyboardEvents\n"(2)打印参数或变量# 将xf86PostButtonEventM(DeviceIntPtr device, int is_absolute,int button, int is_down, const ValuatorMask *mask)@xorg-1.20.13/hw/xfree86/common/xf86Xinput.c的前三个函数自动打印出来 dprintf xf86Xinput.c:1369,"is_absolute = %d, button = %d, is_down = %d\n",is

相关新闻

抖音批量下载神器:douyin-downloader完整指南,轻松获取无水印视频

抖音批量下载神器:douyin-downloader完整指南,轻松获取无水印视频

抖音批量下载神器:douyin-downloader完整指南,轻松获取无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and …

2026/8/1 1:20:19 阅读更多 →
Glide 是怎么进行生命周期管理的

Glide 是怎么进行生命周期管理的

本质上,Glide 并不是“监听”或“观察” Activity,而是利用了 Android 系统给组件设定的生命周期回调强制执行规则,玩了一手“寄生”。我把这个“自动管理”的底层流水线拆解为 4 个核心步骤,你一看就明白了:第 1 步&a…

2026/8/1 1:20:19 阅读更多 →
2026手机播放器推荐:支持4K的选哪款?

2026手机播放器推荐:支持4K的选哪款?

2026年适合大众使用的4K手机播放器可优先选VLC、MX Player、nPlayer、爆米花等产品,不同播放器适配不同使用场景,建议结合自身观影资源存储方式、设备生态选择即可。手机播放器核心选型标准本地播放为主:优先选解码能力强、音视频格式兼容性高…

2026/8/1 1:20:19 阅读更多 →

最新新闻

50 Cent地下音乐合集鉴别指南:从音质判断到资源管理

50 Cent地下音乐合集鉴别指南:从音质判断到资源管理

这类音乐合集的分享,最值得先看的不是曲目列表,而是它到底属于官方发行、歌迷自制还是特定时期的稀有资源整理。对于 50 Cent 这样的重量级人物,任何标注为“Underground Classics”或“Mixtape”的内容,都直接关系到音质来源、曲…

2026/8/1 2:44:47 阅读更多 →
年GMV从3000万到破亿的家居企业,如何通过AI陪跑实现战略落地的3步拆解?

年GMV从3000万到破亿的家居企业,如何通过AI陪跑实现战略落地的3步拆解?

家居企业如何借力AI陪跑实现GMV从3000万到破亿?3步拆解全链路落地方案相信很多家居行业的技术负责人或企业主,都会面临一个头疼的问题:获客成本越来越高,但转化率却一跌再跌。本文正是为那些手握优质产品,却苦于传统营…

2026/8/1 2:44:47 阅读更多 →
Claude Code + Node 从零部署实操:思路、步骤、避坑,一篇讲透

Claude Code + Node 从零部署实操:思路、步骤、避坑,一篇讲透

Claude Code Node 从零部署实操:思路、步骤、避坑,一篇讲透 注:常有人把 Claude Code 误打成 “cloud code / clould code”,本文统一用正确拼写。它和上一期讲的 CC Switch 是天生一对——后面会说到。 你听了一堆 “AI 帮你写代…

2026/8/1 2:44:47 阅读更多 →
BISS协议深度解析:从原理到工业编码器高速通信实战

BISS协议深度解析:从原理到工业编码器高速通信实战

1. 项目概述:从“简记”到“深挖”BISS协议最近在调试一个工业编码器项目时,又和BISS协议打上了交道。说起来,BISS(Bidirectional Synchronous Serial Interface)这个协议在运动控制、高精度测量领域,尤其是…

2026/8/1 2:44:47 阅读更多 →
【YOLO26创新改进】TPAMI 2025顶刊 | Backbone主干网络改进篇 | 使用UniRepLKNet主干网络,重参数化大核卷积,适合目标检测、遥感目标检测、图像分割、图像分类任务

【YOLO26创新改进】TPAMI 2025顶刊 | Backbone主干网络改进篇 | 使用UniRepLKNet主干网络,重参数化大核卷积,适合目标检测、遥感目标检测、图像分割、图像分类任务

一、本文介绍 ⭐本文将UniRepLKNet作为YOLO26的主干网络,主要是利用其大核卷积和分层特征提取能力,为检测头提供更宽的有效感受野与更完整的目标形状信息:中高层的大核模块负责建立远距离上下文关系,小核模块继续保留边缘、纹理和局部结构,配合多尺度输出,有助于提升复杂…

2026/8/1 2:44:47 阅读更多 →
2026年横评:16款降AI率工具横评,闭眼入这款就对了!

2026年横评:16款降AI率工具横评,闭眼入这款就对了!

随着AI写作技术的迅猛发展,越来越多的学术创作者开始依赖这类工具提升效率。然而,2026年各大高校与科研机构对AIGC检测的审核标准愈发严格,论文中的AI痕迹成为影响成绩与发表的关键因素。在这样的背景下,如何高效降低查重率、去除…

2026/8/1 2:43:47 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →