Linux C++ GDB调试入门到精通

金旋
• 阅读 91

Linux C++ GDB调试入门到精通//下仔のke:https://yeziit.cn/15086/ Linux C++ GDB调试入门到精通GDB,全称GNU调试器,是GNU项目的一部分,是一个强大的Unix下的程序调试工具。它可以用来调试C、C++、Objective-C以及其他支持的语言写的程序。

使用GDB,你可以设置断点、单步执行、查看和修改变量的值、查看调用栈信息等,以帮助你找出程序中的问题。

以下是一些GDB的基本命令:

启动GDB:

bash gdb your_program 设置断点:在你想停止执行的代码行设置断点。

bash break function_name
break file_name:line_number 开始执行程序:你可以使用run命令来启动你的程序。

bash run [arguments] 查看调用栈:使用backtrace或简写的bt命令。 查看堆栈帧:使用frame或简写的f命令,后跟帧编号。 查看变量值:在你想查看的变量前加上print或简写的p命令。 单步执行:使用next或简写的n命令来执行下一行代码,如果当前行是一个函数调用,next会执行整个函数。如果你想进入函数内部,可以使用step或简写的s命令。 继续执行直到下一个断点:使用continue或简写的c命令。 退出GDB:使用quit或简写的q命令。 查看帮助:使用help或简写的h命令,后跟一个命令名,可以查看该命令的帮助信息。 这只是GDB的一些基本命令。GDB是一个非常强大的工具,有很多高级功能和技巧,可以通过阅读GDB的手册和教程来深入了解。

点赞
收藏
评论区
推荐文章
cpp加油站 cpp加油站
2年前
【工欲善其事,必先利其器】之gdb五大高级用法
本篇文章讲解gdb的一些高级用法,在我们的开发生涯中,调试是很重要的技能,而在linux下开发,最常用的调试工具就是gdb了,所以这里介绍几种gdb比较高级的用法,助力我们的调试技能。还是先看下思维导图:1.gdb怎么调试多线程gdb调试多线程时,默认情况下是所有线程同时都在执行,但是假设我们想只有一个线程继续执行,其他线程都暂停呢?下面就来看一看该怎么
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
CMU
一、实验目的1.理解C语言程序的机器级表示。2.初步掌握GDB调试器的用法。3.阅读C编译器生成的x8664机器代码,理解不同控制结构生成的基本指令模式,过程的实现。二、实验工具1.SecureCRT2.Linux3.Objdump命令反汇编4.GDB调试工具
Wesley13 Wesley13
2年前
gdb调试技巧
gdb支持源码级调试,这是众所周知的事情。当然,你也可以进行汇编级的调试。理论上这个更应该有用。(因为很多程序的编译常常没有源码级别的调试信息)那么怎么做?先写一个最简单的源代码。$cata.cintmain(void){inti0;i2;return0;}CtrlD
Stella981 Stella981
2年前
GDB原理之ptrace实现原理
在程序出现bug的时候,最好的解决办法就是通过 GDB 调试程序,然后找到程序出现问题的地方。比如程序出现 段错误(内存地址不合法)时,就可以通过 GDB 找到程序哪里访问了不合法的内存地址而导致的。本文不是介绍GDB的使用方式,而是大概介绍GDB的实现原理,当然GDB是一个庞大而复杂的项目,不可能只通过一篇文章就能解释清楚,所以
Wesley13 Wesley13
2年前
Ubuntu下GDB调试器的使用
gdb调试器时一款GNU组织开发、发布的UNIX/Linux环境下的程序调试工具,没有图形界面,但功能强大。GDB使用流程:先编写一个测试文件gdbTest.c!(https://oscimg.oschina.net/oscnet/e9500596a265331ca6539ee3f2cef6df988.png)      保存后用gcc
程序调试利器——GDB使用指南
GDB是GNUDebugger的简称,其作用是可以在程序运行时,检测程序正在做些什么。GDB程序自身是使用C和C程序编写的,但可以支持除C和C之外很多编程语言的调试。
稚然 稚然
3个月前
2024版Linux视频教程
//下仔のke:https://yeziit.cn/15269/Linux是一种自由使用和自由传播的类Unix操作系统,全称为GNU/Linux。它基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,主要受到Minix和Unix思想的
稚然 稚然
2个月前
尚硅谷Linux运维全套视频
//下仔のke:https://yeziit.cn/14515/Linux是一种免费使用和自由传播的类Unix操作系统,全称为GNU/Linux。它由林纳斯·本纳第克特·托瓦兹于1991年首次发布,基于POSIX和UNIX的多用户、多任务、支持多线程和多C
金旋 金旋
2个月前
Linux C++ GDB调试入门到精通
//下仔のke:https://yeziit.cn/14051/GDB(GNUDebugger)是一个强大的Unix下的程序调试工具,支持C、C、Fortran等多种语言。使用GDB,你可以设置断点、单步执行、查看变量值等,从而帮助你定位和修复程序中的