gdb调试常用命令
| gdb 调试常用命令 | |
| gcc -g mian.c -o main.out | -o (定制生成的可执行文件的名称,缺省时为a.out) -g 使gdb可调试,在编译的时候,产生调试信息 |
| gdb main.out | (进入gdb调试环境),调试可执行文件main.out |
| list(l) | 显示当前行之后的10行代码(list后面可接行号和函数名,回车继续向下显示) |
| 回车 | 直接回车,重复上一次执行的命令 |
| start(s) | 开始执行程序,并停在main函数的第一条语句处 |
| next(n) | 执行下一条语句 |
| step(s) | 进入正要执行的函数内部 |
| print(p) | 打印变量的值 |
| break(b) info breakpoints(i b) delete breakpoints(d) n disable breakpoints n enable breakpoints n |
设置断点 (行号 || 函数名) 查看断点 删除编号为n的断点 使编号为n的断点失效 使编号为n的断点生效 |
| run(r) | 连续执行程序,直到遇到断点 |
| continue(c) | 继续执行程序,直到遇到下一个断点 |
| finish | 跳出当前函数,执行其调用函数 |
| jump(j) n | 强制跳转到第n行,若后面没有断点则执行到程序结束 |
| print(p) var | 打印变量var的值,打印地址 |
| p /x var | 以16进制的值显示var的值 x 按十六进制格式显示变量。 d 按十进制格式显示变量。 u 按十六进制格式显示无符号整型。 o 按八进制格式显示变量。 t 按二进制格式显示变量。 a 按十六进制格式显示变量。 c 按字符格式显示变量。 f 按浮点数格式显示变量。 |
| print *a@n | (a是数组名,n是要显示的元素个数), 显示数组a的n个元素 |
| set var a=5 | (set var)命令用于修改变量(a)的值 |
| display var | 程序每执行一步都会打印var变量的值 |
| undisplay n | 取消编号为n的打印 |
| info locals | 列出当前函数的局部变量信息 |
| x/<n/f/u> <addr> | 查看从addr地址开始的n个字节 n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,参见下面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。 u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。 <addr>表示一个内存地址。 注意:严格区分n和u的关系,n表示单元个数,u表示每个单元的大小。 |
| whatis var | 显示变量var的类型 |
| ptype var | 显示变量var更详细的类型 |
| backtrace(bt) | 查看其调用函数的信息(列出调用栈) |
| frame args | 移动到args(args为栈的层次)指定的函数栈帧中去,并打印选中的栈的信息 |
| watch var | 当程序访问变量名指定的内存单元时,停止程序 |
| info watchpoints | 打印观察点 |
| delete watchpoints | 删除观察点 |
| quit(q) | 退出gdb调试 |
gdb调试常用命令的更多相关文章
- 调试多线程 & 查死锁的bug & gcore命令 & gdb对多线程的调试 & gcore & pstack & 调试常用命令
gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于 ...
- gdb的调试常用命令
一.gdb常用的命令 list l 常看源代码 break b 设置断点 b 10(行号) b ...
- Android开发调试常用命令列表
Android开发调试常用命令列表 adb命令 am am start -n com.iflytek.autofly.account/.ui.MainActivity am start -n com. ...
- gdb调试常用实用命令和core dump文件的生成
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...
- gdb调试常用实用命令和core dump文件的生成(转)
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的 ...
- GDB调试——常用的命令
首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令 ...
- Bash,Vim,gdb&git常用命令
Bash 目录 pwd //查看当前目录 mkdir dir1 dir2 //创建目录 tree dir1 mv test1.cpp test2.cpp dir1 dir //移动文件/目录到目 ...
- Linux下离线安装gdb及常用命令汇总
以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的. 1.离线安装gdb 像gcc.g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装, ...
- 使用 GDB 调试需要命令行参数的程序
使用 gdb 命令提供的 --args 选项可以调试需要命令行参数的程序,如下: gdb --args a.out arg1 arg2 arg3
随机推荐
- 重构第20天 提取子类(Extact SubClass)
理解:提取子类就是把基类中,不是所有子类或者只有少数子类用到的方法,提取出来,调整到子类中去. 详解:下面的代码中我们用到一个单一的类Registration,来处理学生选课信息. public cl ...
- ASP.NET MVC5 网站开发实践
http://www.cnblogs.com/mzwhj/p/3538108.html
- kfreebsd不适用于实际环境
debian搞的kfreebsd,其中有很多常用的软件包处于依赖破损的状态,个人觉得是无法用作日常开发或生产环境的. 当然,对于只使用其中几项完整可用功能的场景,基本上还是可以的. 当时看个这个东东的 ...
- Activity按下2次退出和获取当前时间
先看下onBackPressed和onKeyDown的区别 在Android上有两种方法来获取该按钮的事件 1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规 ...
- PowerBuilder反编译
最近需要了解某个PowerBuilder程序如何工作的,这已经是某个时代的产物了.除了EXE之外,还有一些PBD文件.PBD文件是PowerBuilder动态库,作为本地DLL的一个替 ...
- ajax跨子域请求的两种现代方法
因为面向互联网的性质,我们公司的大部分系统都采用多子域的方式进行开发和部署,以达到松耦合和分布式的目的,因此子系统间的交互不可避免.虽然通过后台的rpc框架解决了大部分的交互问题,但有些情况下,前端直 ...
- SQL数据库基础(四)
聚合函数:sum,avg,max,min,count 使用方法示例: group by 分组的使用方法 分组的练习: 数学函数:ABS.ceiling.floor.power.round.sqrt. ...
- [js开源组件开发]-手机端照片预览组件
手机端照片预览组件 可怜的我用着华为3C手机,用别人现成的组件都好卡,为了适应我这种屌丝,于是自己简化写了一版的照片预览效果,暂时无缩放功能,以后可能有空再加吧,你也可以自己加下,这是个github上 ...
- css设置height 100%
需要显式设置html,body为100%,body是相对于html,wrapper是相对于body html,body{ height: 100%; } .wrapper{ height: 100; ...
- 用doxygen+graphviz自动化生成代码文档(附详细教程)
一.引子 用这两个工具可以自动的遍历代码,并且产生代码文档,我们先来看看效果,然后放出这两个工具的下载地址. 二.工具的下载地址 doxygen:http://www.stack.nl/~dimitr ...