gdb最基本的调试命令.
1以调试程序test.cpp为例:
进入调试环境 gdb test


2.b 12
在文件的第12行设置断点。

删除断点:

info b 列出所有的断点信息

(gdb) info b

Num Type           Disp Enb Address    What

1   breakpoint     keep y   0x004010f1 in main at test.cpp:17

    breakpoint already hit 1 time

2   breakpoint     keep y   0x00401120 in main at test.cpp:23

    breakpoint already hit 1 time

 

要删除第2个断点

 d 2



如果不指定断点号,则表示删除所有的断点


3.r –d
执行当前被调试的程序.-d是运行参数


4.p variable
打印数据内容


5.l
列出产生执行文件的源代码的一部分.


6.n
执行一行源代码但不进入函数内部。


7.s
执行一行源代码而且进入函数内部。


8.c
继续执行程序,直至下一中断或者程序结束。


9.k
终止正在调试的程序.


10.q
终止 gdb.


附注:基本gdb命令:
命令
简写
功能
file
 
装入想要调试的可执行文件.
kill
k
终止正在调试的程序.
list 
l
列出产生执行文件的源代码的一部分.
next
n
执行一行源代码但不进入函数内部.
step
s
执行一行源代码而且进入函数内部.
continue
c
继续执行程序,直至下一中断或者程序结束。
run
r
执行当前被调试的程序.
quit
q
终止 gdb.
watch
 
使你能监视一个变量的值而不管它何时被改变.
catch
 
设置捕捉点.
thread
t
查看当前运行程序的线程信息.
break
b
在代码里设置断点,
这将使程序执行到这里时被挂起.
make
 
使你能不退出 gdb
就可以重新产生可执行文件.
shell
 
使你能不离开 gdb
就执行 UNIX shell
命令.
print
p
打印数据内容。
examine
x
打印内存内容。
backtrace
bt
查看函数调用栈的所有信息。

gdb调试小结的更多相关文章

  1. GDB调试命令小结

    1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...

  2. 使用 GDB 调试多进程程序

    使用 GDB 调试多进程程序 GDB 是 linux 系统上常用的调试工具,本文介绍了使用 GDB 调试多进程程序的几种方法,并对各种方法进行比较. 3 评论 田 强 (tianq@cn.ibm.co ...

  3. Linux+eclipse+gdb调试postgresql源码

    pg内核源码解析课上用的vs调试pg源码, VS用起来确实方便,但是配置调试环境着实有点麻烦.首先得装个windows系统,最好是xp,win7稍微麻烦点:最好使用vs05,08和10也可以,但是比0 ...

  4. GDB Core,gdb 调试大全,core文件调试

    编译: gcc -g -o hello hello.c gdb 调试: 基本 gdb 命令. 命 令 描 述 小结:常用的gdb命令 backtrace 显示程序中的当前位置和表示如何到达当前位置的栈 ...

  5. GDB 使用小结

    GDB 使用小结 Gdb 不用说,两个字,非常强大 >.<,我最讨厌不识数的人了 本文适合GDB 初学和没学过的,如果你懂了,可以相互交流 既然说它很强大,它强大在哪里呢? 一般情况下,大 ...

  6. 使用gdb调试c++程序

    上篇(使用c++开发跨平台程序)说到,我不怕造东西,我怕的是造出来的东西,如果出了问题,我却不知道原因.所以调试分析是一个重要的手段. C++调试是一个复杂的活.虽然大部分调试可以通过IDE在开发期间 ...

  7. gdb命令小结

    GDB命令小结 gdb <filename> : 调试指定程序文件 r : run 的简写,运行被调试程序, 如果此前没有下过断点,则执行完整个程序:如果有断点, 则程序暂停在第一个可用断 ...

  8. 第二课:启动 GDB 调试

    使用 GDB 调试程序一般有三种方式: gdb filename gdb attach pid gdb filename corename 这也对应着本节课的核心内容: 直接调试目标程序 附加进程 调 ...

  9. GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 分析过程 这是我的C源文件:click here 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb ...

随机推荐

  1. POJ 1426

    http://poj.org/problem?id=1426 一道广搜的题目. 题意就是给你一个n,要你求出n的倍数中,只存在0和1的那个数字 所谓的只存在0和1,那么就是某个数的十倍或者十倍+1,而 ...

  2. keepalived+haproxy构建高可用负载均衡

    一.环境介绍 我用的是centos6.7,内核版本为2.6.32-573.el6.x86_64,keepalived版本为keepalived-1.2.22,haproxy版本为haproxy-1.6 ...

  3. Unity3d 残影效果(狂拽炫酷叼炸天)

    效果图,真的很叼啊 我根据别人的改进了一版,支持MeshFilter上的Mesh(需要确保Mesh的Read/Write是开启的否则不能正常工作) 非常感谢原作者给提供思路.http://blog.c ...

  4. 6.nodejs权威指南--进程

    1. 进程 var net = require('net'); var cluster = require('cluster'); cluster.setupMaster({ exec:'child. ...

  5. Effective C++ -----条款08: 别让异常逃离析构函数

    析构函数绝对不要吐出异常.如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序. 如果客户需要对某个操作函数运行期间抛出的异常作出反应,那么class应 ...

  6. BestCoder22 1003.NPY and shot 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 题目意思:有个人抛物体,已知抛的速度和高度,问可以抛到的最远距离是多少.即水平距离. 做的时候是 ...

  7. jquery this 与javascript的this

    <div class="list"> <table> <thead> <tr> <th width="110&quo ...

  8. 读取Spring的配置文件applicationContext.xml的5种方法

    1.利用ClassPathXmlApplicationContext,这种方式配置文件应该放在类包同路径下Java代码: ApplicationContext ct=new ClassPathXmlA ...

  9. microsofr visual studio编写c语言

    过程: 1.创建win32 控制台项目 文件->新建->项目->Visual C++ ->Win32   输入项目名称   选择项目保存位置 2.添加->新建如图

  10. ThinkPHP入门(二)

    smarty使用 smarty引入流程 1. 控制器IndexAction.class.php function index() $this -> display(); (父类Action的di ...