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调试常用命令的更多相关文章

  1. 调试多线程 & 查死锁的bug & gcore命令 & gdb对多线程的调试 & gcore & pstack & 调试常用命令

    gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于 ...

  2. gdb的调试常用命令

    一.gdb常用的命令 list                       l    常看源代码 break                  b    设置断点     b  10(行号)    b ...

  3. Android开发调试常用命令列表

    Android开发调试常用命令列表 adb命令 am am start -n com.iflytek.autofly.account/.ui.MainActivity am start -n com. ...

  4. gdb调试常用实用命令和core dump文件的生成

      1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...

  5. gdb调试常用实用命令和core dump文件的生成(转)

    1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的 ...

  6. GDB调试——常用的命令

    首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令 ...

  7. Bash,Vim,gdb&git常用命令

    Bash 目录 pwd  //查看当前目录 mkdir dir1 dir2  //创建目录 tree dir1 mv test1.cpp test2.cpp dir1 dir  //移动文件/目录到目 ...

  8. Linux下离线安装gdb及常用命令汇总

    以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的. 1.离线安装gdb 像gcc.g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装, ...

  9. 使用 GDB 调试需要命令行参数的程序

    使用 gdb 命令提供的 --args 选项可以调试需要命令行参数的程序,如下: gdb --args a.out arg1 arg2 arg3

随机推荐

  1. sencha combobox下拉框不用jsonstore,直接使用字符串数组做数据源

    combobox下拉框的store除了可以选择一个jsonstore来加载数据,还可以直接使用符串Array做数据源. { xtype: 'combobox', fieldLabel: 'Label' ...

  2. sql server2008安装错误(无法处理异常)

    我在安装sql server2008时出现安装错误,无法处理的异常,问题如下: 解决方法:在地址栏输入C:\Users\Administrator\AppData\Local ,找到Microsoft ...

  3. [Eclipse] - 解决导入flask模块出现的Unresolved Import flask问题

    http://www.cnblogs.com/mizhon/p/4242073.html [Eclipse] - 解决导入flask模块出现的Unresolved Import flask问题 最近想 ...

  4. 使用jQuery库改造ajax

    html页 ---------------------------------------------------------------------------------------------- ...

  5. transfer between javabean and map

    1. java bean 转化成 map import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.P ...

  6. 使用openssl创建自签名证书及部署到IIS教程

    概要 本文讲解三个部分:1. 创建自签名证书2. 创建自己的证书颁发机构3. 以及如何配置IIS 创建自签名证书 首先,创建一个私钥文件: openssl genrsa -out myselfsign ...

  7. SAP中关于用户IP信息的获取(转载)

    SAP中如何获取登录用户的IP? 或如何查看哪些IP登录到SAP中: 在Table: USR41中查看,具体字段的说明如下: MANDT   ---   ClientBNAME   ---   登录的 ...

  8. block中出现此种报错: Incompatible block pointer types initializing 'float (^__strong)(float, float)' with an expression of type 'int (^)(float, float)'

    当block(代码块)的返回值是float时,应注意的地方:定义的返回值类型一定要与return的返回值类型一样 我们以两个数的四则运算来举例 在main.m文件中的四则运算中,我采用两种返回值类型( ...

  9. MyBatis入门(一)---基本使用

    一.MyBatis简介 1.1.概述 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. M ...

  10. IOS Quartz2D简介

    Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxConte ...