gdb使用记录

用于记录日常调试用到的方法,而不是简单的命令说明

首先还是先将用过的命令列出
命令:缩写:说明
run:r:执行程序
break:b:设置断点
print:p:打印变量内容
next:n:执行到下一条语句
step:s:进入函数执行(gdb官方说法是Step program until it reaches a different source line.)
continue:c:继续执行
backtrace:bt:打印调用堆栈
frame:f:显示当前堆栈信息
finish::完成当前函数的执行(gdb手册的官方说法是Execute until selected stack frame returns.此处的函数为通俗说法)
examine:x:打印内存内容
until:u:完成当前循环的(不过在很多情况下并非如此,gdb手册的官方说法是Execute until the program reaches a source line greater than the current or a specified location (same args as break command) within the current frame.)
jump:j:跳到指定的位置执行

常用的手段
1、重定向。run 0<input.file 1>output.file或者set args 0<input.file 1>output.file
2、重复执行代码(在同一函数内)。b line_number \n j line_number\n
3、打印内存。x/8xb address,以16进制方式打印8个字节

时间: 2024-11-03 01:20:10

gdb使用记录的相关文章

makefile、gdb使用记录

makefile的模板 all: rover server station rover: rover.c tcputil.o gcc rover.c tcputil.o -o rover -lpthread server: server.c tcputil.o gcc server.c tcputil.o -o server -lpthread station:station.c tcputil.o gcc station.c tcputil.o -o station -lpthread tcp

GDB调试系列之了解GDB

想要熟练利用GDB进行程序调试,首先要了解什么是GDB. 1. 什么是GDB GDB (the GNU Project Debugger) 是一个可以运行在大多数常见的UNIX架构.Windows.Mac OSX等系统上的跨平台调试器,允许我们查看另一个程序在运行过程中内部发生了什么——或者另一个程序崩溃时在做什么. 具体而言,GDB能做以下四种事情[1],以帮助我们定位运行中的Bug: 让程序开始运行,指定任何可能影响其行为的内容. 让程序在特定条件下停止运行. 检查程序停止运行时发生了什么.

记录一下我的GDB配置

一:为了更好的在GDB中显示STL容器,我们首先要下载一个python脚本 PS:要确定你所安装的GDB可以执行python脚本 cd ~ mkdir .gdb cd .gdb svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python 二:修改用户目录下的.gdbinit文件(将以下文本复制一份就行) #为了更好的在GDB中显示STL容器而执行的python脚本 python import sys #qch是我的用户名,大家可根据自己的

Linux相关——记录gdb基本操作

gdb的确是个很强大的东西啊,这里记录一下gdb的基本操作吧 后续可能会补充,但暂时感觉够用了就不写多了. 首先是ubuntu终端的2个最基本的操作:(不然会gdb但是调不出终端也没用啊!) 1,cd xxxx     进入xxxx目录 2,Ctrl + Alt + T   调出终端 3,l  列出目录里有哪些文件 & 文件夹 接下来就是gdb了. 前提:编译时加上 -g 选项 比如g++ P1000.cpp -g -Wall -Wextra -o work (在末尾加-O2可以开O2) 1,g

Linux下gdb使用整理记录

1.创建cpp文件:vim sourcefile.cpp 2.生成可执行文件:g++ -g sourcefile.cpp -o exename ------据说是要必须加上-g参数,否则不可调试 3.启动调试:输入gdb(滚蛋吧)进入gdb环境 4.输入 file exename   (告诉gdb要调试了) 5.输入 l (list)查看代码,回车重复上一条命令 6.断点设置:b main   在main函数入口加一个断点 -------break  5  :在第5行设置断点: i b  (in

深度学习的GDB调试命令和经验记录

调试的指令很简单: cd $CAFFE_ROOT, 1. gdb ./build/tools/caffe 2. 设置运行参数 set args train --solver=xxxxsolver.prototxt 3. 设置断点, 比如b solver.cpp:59 , 此时会出现"Make breakpoint pending on future shared library load? (y or [n]) ", 选择y即可,因为断点设置在.so文件中 4. run 即可

在GDB 中如何记录 instruction-history and function-call-history

(EDIT: per the first answer below the current "trick" seems to be using an Atom processor. But I hope some gdb guru can answer if this is a fundamental limitation, or whether there adding support for other processors is on the roadmap?) Reverse

gdb 记录临时变量

gdb ./pgm set logging file log set logging on ... set logging off gdb ./pgm | tee -a log ... file a.log a.log: data a.log是二进制文件, less -R 可以查看, tee -a 比较好用. 直接查看就好:

gdb常用命令记录

gdb常用命令 最近在研究nginx源码,gdb用于调试非常方便,之前这篇有研究过如何使用gdb调试nginx:https://www.cnblogs.com/yjf512/archive/2012/05/10/2494635.html 最近使用的时候gdb的命令又忘记了.这里复习一下. 这里有很全的资料:https://www.gitbook.com/book/wizardforcel/100-gdb-tips 常用命令 启动项目并断点 start 打临时断点 tb 打断点 b 列出代码 l