![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux gdb
叨陪鲤
哈
展开
-
GDB调试:Linux开发人员必备技能
开篇词:Linux C/C++ 开发人员要熟练掌握 GDB 调试大家好,我是范蠡,目前在某知名互联网旅游公司基础框架业务部技术专家组任开发经理一职。本系列课程的主题是 Linux 后台开发的 C/C++ 调试,通俗地说就是 GDB 调试。GDB(GNU Debugger)是类 Unix(如 Linux)操作系统下的一款开源的 C/C++ 程序调试器。最初是在 1988 年由理查德 · 马修...转载 2019-03-23 14:37:24 · 4538 阅读 · 0 评论 -
第09课:GDB 实用调试技巧(下)
本节课的核心内容:多线程下禁止线程切换 条件断点 使用 GDB 调试多进程程序多线程下禁止线程切换假设现在有 5 个线程,除了主线程,工作线程都是下面这样的一个函数:void thread_proc(void* arg){ //代码行1 //代码行2 //代码行3 //代码行4 //代码行5 //代码行6 //代码行7...转载 2019-03-23 14:39:03 · 4498 阅读 · 0 评论 -
第08课:GDB 实用调试技巧( 上)
本节课的核心内容:将 print 打印结果显示完整 让被 GDB 调试的程序接收信号 函数明明存在,添加断点时却无效将 print 打印结果显示完整当使用 print 命令打印一个字符串或者字符数组时,如果该字符串太长,print 命令默认显示不全的,我们可以通过在 GDB 中输入 set print element 0 命令设置一下,这样再次使用 print 命令就能完整地显示该变...转载 2019-03-23 14:38:58 · 4616 阅读 · 0 评论 -
第07课:GDB 常用命令详解(下)
本课的核心内容:disassemble 命令set args 和 show args 命令tbreak 命令watch 命令display 命令disassemble 命令当进行一些高级调试时,我们可能需要查看某段代码的汇编指令去排查问题,或者是在调试一些没有调试信息的发布版程序时,也只能通过反汇编代码去定位问题,那么 disassemble 命令就派上用场了。initSer...转载 2019-03-23 14:38:53 · 5112 阅读 · 0 评论 -
第06课:GDB 常用命令详解(中)
本课的核心内容:info 和 thread 命令 next、step、util、finish、return 和 jump 命令info 和 thread 命令在前面使用info break命令查看当前断点时介绍过,info 命令是一个复合指令,还可以用来查看当前进程的所有线程运行情况。下面以 redis-server 进程为例来演示一下,使用 delete 命令删掉所有断点,然后...转载 2019-03-23 14:38:47 · 5182 阅读 · 0 评论 -
第05课:GDB 常用命令详解(上)
本课的核心内容如下:run 命令 continue 命令 break 命令 backtrace 与 frame 命令 info break、enable、disable 和 delete 命令 list 命令 print 和 ptype 命令为了结合实践,这里以调试 Redis 源码为例来介绍每一个命令,先介绍一些常用命令的基础用法,某些命令的高级用法会在后面讲解。Redis...转载 2019-03-23 14:38:19 · 4777 阅读 · 0 评论 -
第04课:使用 VS 管理开源项目
本节课将介绍 Redis 项目在 Linux 系统中使用 gdb 去调试,这里的调试环境是 CentOS 7.0,但是通常情况下对于 C/C++ 项目我一般习惯使用Visual Studio去做项目管理,Visual Studio 提供了强大的 C/C++ 项目开发和管理能力。这里介绍一下如何将这种开源项目整体添加到 Visual Studio 的解决方案中去。(1)启动 Visual S...转载 2019-03-23 14:38:12 · 4538 阅读 · 0 评论 -
第三课:GDB 常用的调试命令概览
先给出一个常用命令的列表,后面会结合具体的例子详细介绍每个命令的用法。命令名称 命令缩写 命令说明 run r 运行一个程序 continue c 让暂停的程序继续运行 next n 运行到下一行 step s 如果有调用函数,进入调用的函数内部,相当于 step into until u 运行到指定行...转载 2019-03-23 14:38:02 · 4206 阅读 · 0 评论 -
第二课:启动 GDB 调试
使用 GDB 调试程序一般有三种方式:gdb filename gdb attach pid gdb filename corename这也对应着本节课的核心内容:直接调试目标程序 附加进程 调试 core 文件接下来我们逐一讲解。2.1 直接调试目标程序在开发阶段或者研究别人的项目时,当编译成功生成目标二进制文件后,可以使用gdb filename直接启动这个程序...转载 2019-03-23 14:37:46 · 4601 阅读 · 0 评论 -
第一课:调试信息和调试原理
第01课:调试信息与调试原理Linux 下 C++ 程序开发,即使使用 makefile、cmake 等编译工具,其最终都是调用 gcc 这一编译工具组的。这里说的工具组,是因为编译 C 程序和 C++ 程序使用的编译工具还是有一点差别的,一般编译 C 程序使用gcc,编译 C++ 程序使用g++。(下面为了叙述方便,除非特别说明,否则不做具体区分是 gcc 还是 g++,统一使用 gcc ...转载 2019-03-23 14:37:38 · 4473 阅读 · 0 评论 -
常见GDB命令
原创 2019-09-28 18:26:02 · 4288 阅读 · 0 评论