首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GDB使用详解

一、打开GDB 1、gdb filename 加载该文件到gdb 2、gdb file filename 如果gdb filename失败,可以在打开gdb以后,通过file来加载调试文件 3、gdb...*注意-g,在linux下用gcc编译时,如果不加-g,编译器会进行优化,就不会生成调试信息,无法调试,也可以使用-ggdb,这是gcc为gdb提供的更详细的调试信息,别的调试器无法使用。...行数或者文件名:函数名; tb(tbreak):临时断点,参数和b的一样; info b(i b/info break):查看断点,查看断点; 例:如下图,通过b设置断点,如果要为断点指定源文件,使用...until:可以运行程序直到退出循环体; finish:运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息; watch:设置一个监视点,一旦被监视的“表达式”的值改变,gdb...显示源代码和反汇编窗口; display: 在每次单步进行指令后,紧接着输出被设置的表达式及值; stepi或nexti:单步跟踪一些机器指令; Ctrl + L:刷新窗口; quit:简记为 q ,退出gdb

6.5K100
您找到你想要的搜索结果了吗?
是的
没有找到

Linux gdb使用基础

GDB简介 GDB(GNU Debugger)是Linux下一款C/C++程序调试工具,通过在命令行中执行相应的命令实现程序的调试,使用GDB时只需要在shell中输入gdb命令或gdb filename...下面使用GDB对该可执行程序进程调试: $ gdb gdbtest 输出以下信息: GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git Copyright...可以继续使用info locals命令查看add()函数中的局部变量的值,也可以使用frame 1命令先选择主函数所在的1号帧栈,再使用info locals命令查看主函数中的局部变量的值: (gdb)...最后可以使用quit命令退出GDB环境: (gdb) quit A debugging session is active....) list每次显示10行,可以使用Enter键继续显示,for循环语句位于第11行,使用break加行号命令设置断点: (gdb) break 11 Breakpoint 1 at 0x73c: file

2.3K10

GDB入门教程之如何使用GDB启动调试

若 demo 程序启动时需要命令行参数,则可以在使用 gdb demo 命令进入GDB后,使用命令 run arg1 arg2... 提供命令行参数并启动对demo程序的调试。...二、GDB调试运行中程序 使用GDB调试正在运行的程序时,必须先找到该程序运行在操作系统中的进程号 (PID)。...获取到待调试的目标进程号后 (假设为 pid ),可以使用 gdb 命令进入 GDB 终端,并使用 attach pid 的方式启动对当前正在运行的 demo 进程的 GDB 调试。...也可以使用 gdb-p pid 命令直接进入 GDB 并启动对该进程的调试。...对于使用多线程模式的进程,可以在 GDB使用 info threads 命令显示当前进程中所有线程的基本调试信息,包括:GDB 分配的线程ID、线程堆栈等。

4.1K10

使用GDB调试Linux内核

GDB可以让你在被调试程序执行时看到它的”内部“情况,观察程序在特定断点上的状态,并逐行运行代码。 GDB还提供了“远程”模式,使用GDB协议通过网络或串行设备与被调试程序进行通信。...程序需要链接GDB提供的stub,这个stub实现了GDB协议。或者可以使用GDBserver,这时程序不需要进行任何更改。...类似的,Linux内核开发者可以使用GDB的远程模式,与调试应用程序几乎相同的方式来调试Linux内核。...KGDB是Linux内核的源代码级调试器,你可以使用GDB作为KGDB的前端,在我们熟悉且功能强大的GDB调试界面中调试内核。...如果你在内核配置中启用了KASLR(CONFIG_RANDOMIZE_BASE=y),则无法gdb设置断点。

95210

Git和gdb使用

) 4.补充斧 a.git pull b.git status 二.gdb使用 1.release和debug 2.使用 a.生成debug版 b.显示 c.断点 d.运行 三.总结 一.Git...补充 在我的服务器下使用ll无法看到.git,必须使用ls -al 进入到仓库以后发现有一个.git目录,这个目录其实就是本地仓库。...(Gitee中也有这个文件,不过隐藏了无法看到) 3.Git三板斧 如果你没有的服务器还没有安装Git就使用sudo yum install -y git安装 a.添加(将文件放至暂存区) git add...如果是对Gitee中已经存在的文件做更改则只需要使用三板斧的后两板斧即可。 二.gdb使用 在前面我们已经学过了vim编辑器,并且也在一直使用vim编写代码。...如果你的服务器没有配置gdb使用sudo yum install -y gdb安装一下即可 1.release和debug 在这里我创建一个mytest.cpp然后使用g++编译以后,想用gbd

38200

Linux之gdb使用

当我们能够在windows下,使用vs 2019等编译器去进行调试的时候,我们可以将在Linux下使用gdb调试这两者之间进行对比: 调试这个操作,在方法上有区别吗?...因此,在学习Linux的gdb调试时,一定要抓住我们的调试思路去学习。 在Linux下,我们使用的是命令行调试。...因此,本章着重解析的是操作方法,不是思路: 首先我们先写好测试用的代码:  并且将代码写入makefile中  接着开始调试:调试工具:gdb 使用gdb+需要调试的代码文件来开启调试模式: 但此时这里显示的是没有可调试的地方...:  因为在默认情况下,gdb无法对程序进行调试。...修改变量的值:set var {变量}=val  这些指令就是能够在gdb的进行调试的指令啦!

2.1K20

Linux调试器-gdb使用

背景知识 程序的发布方式有两种,debug模式和release模式 Debug是开发者模式,而用户最终使用的是release。Debug模式下程序是可以被调试的,release模式下不可调试。...Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项 生成Debug模式下的文件:gcc -o process-Dubeg...命令 为了演示gdb命令的使用方法,以下面这个代码为例: #include int AddToTarget(int start,int end) {...\n"); return 0; } ~ gdb binFile进入gdb环境,其中binFile是一个可执行程序 q或者quit指令可退出 list或者l:现实binFile...run或者r:运行,类似于VS中的F5 程序正常执行,这里程序只是运行,无法调试 b num或者b Fun_name:打断点,可以在行号num处打断点,可以在名为Fun_name的函数处打断点。

10010

【Linux】开始使用gdb吧!

1 下载安装 首先我们要确保已经安装gdb,可以通过 gdb -version来进行间接查看。 未安装使用sudo yum -y install gdb 下载安装即可。...2 开始使用 首先进入gdb直接使用gdb 文件名 接下来我直接给出 gdb 的 所有功能命令(注意简写形式,会经常使用): list /l 行号:显示指定行号附近的源代码,每次显示10行,从当前光标位置向下滚动...出乎意料的是 再使用list出现了报错(No symbol table is loaded....其他指令就不进行探索了,熟悉使用就可以了。...gdb_test() 函数 print gdb_test(a):将以变量 a 作为参数调用 gdb_test() 函数 watch 表达式:设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序

22210
领券