Linux GDB常用命令一栏

Linux GDB 常用命令如下

1.启动和退出gdb

(1)启动:gdb ***:显示一段版权说明; (*** 表示可执行程序名)

(2)退出:quit。有的时候输入quit后会出现相关提示:类似于“(y/n)”,输入y

2.显示和查找程序源代码

(1)list :显示10行代码,但是我为什么没有显示成功呢?

(2)list 5,10:显示源文件第五行到第十行的代码

(3)list t4.c:5,10:显示源文件中第五行到第十行的代码,在跳是含有多个源文件的次序时使用;

(4)list get_sum:显示get_sum函数周围的代码//什么叫周围的代码呢?

(5)list t4.c :get_sum:显示源文件t4.c中第五行到第十行的代码,在跳是含有多个源文件的次序时使用;
(6)如果在调试中运行linux命令,则可以在gdb的提示符下输入shell命令. (gdb)shell ls
(7)search forward用来从当前行向前查找第一个匹配的字符串;
           search get_sum   forward get_sum
(8)reverse_search 用来从当前行想前查找第一个匹配的字符串:  Example:  reverse_search main

3.执行程序和获得帮助;
       gdb -q test 或者file test只是装入程序,程序并没有运行。如果要程序开始运行,在gdb提示符下输入run即可。
       如果想要详细了解gdb某个命令的使用方法,可以用help 命令 Example:(gdb)help list   (gdb)help all

4.设置和管理断点
(1)以行号设置断点:(gdb)break 7 
(2)以函数名设置断点:(gdb)break get_sum
(3)以条件表达式设置断点:方法一:break 行号或者函数名 if  条件.  Example:  (gdb)break 7 if i==99
                                                       方法二:watch 条件表达式,下面是具体的举例:
                                                       方法三:awatch;用来给表达式设置断点,在表达式的值发生改变或者表达式的值杯读取的时候,程序暂时停止;
  (4).查看当前设置的断点:info breakpoints
    Num     Type           Disp Enb Address    What
    解释:Num列表示断点的编号,Type指明类型,类型位breakpoints说明是中断。Disp指示中断点在生效一次后是否就失去作用,如果是则为dis,不时则为keep。     Bnb表明当前中断点是否有效,如果是y,不是则为n。Address列表中断所处的内存地址。What列出中断发生在哪个函数的第几行。

5.使断点失效或者有效
使用“disable  断点编号”命令可以是某个断点失效,程序运行到该段点时不会停下来而是继续运行。

使用“enable 断点编号”命令可以是某个断点恢复有效。

6.删除断点
disable只是让某个断点暂时失效,断点依然存在与程序中。如果要彻底的删除某个断点,可以使用clear或者delete命令。
(1)clear:删除程序中所有的断点;
(2)clear 行号:删除此行中的断点
(3)clear 函数名:删除该函数的断点
(4)delete 断点编号:删除指定编号的断点。如果一次要删除多个断点,各个断点编号以空格隔开。

7.查看和设置变量的值
(1)print  变量或表达式 --- print  变量=值:对变量赋值 --- print  表达式@要打印的值的个数n:打印以表达式值开始n个数

(2)whatis命令:显示某个变量或表达式的数据类型。格式:whatis 变量或者表达式
(3)set 命令:给变量赋值,格式:set variable 变量=值
       将上面实例中的print i=200改为set variable i=200可以得到同样的效果//这个不懂矮。。
       除了这个用法外,set命令还有一些其他用法。比如可以针对远程调试进行设置,可以用来设置gdb一行的字符数等。

8.控制程序的执行
(1)continue命令:让程序继续运行,直到下一个断点或者运行完为止。格式:continue
(2)kill命令:用于结束当前程序的调试

(3)next和step命令
   区别:如果遇到函数,next会把函数调用当作一条语句来执行,再次输入next会执行函数调用后的语句;

   而step则会跟踪进入函数,一次一条的执行函数内的代码,直到函数内的代码执行完,在进行函数调用后的语句;
(4)nexti和stepi命令:用来单步执行一条机器指令,注意不是单步执行一条鱼据。单步执行一条语句使用next和step命令。通常一条语句有多条机器指令构成的。
   注意的是:gdb的一些命令可以简写,比如list可以用li来代替,continue命令可以用cont来代替。

9. Linux GDB命令与Visual Studio Debug下命令对比:

      Linux                                                   windows

进入调试                       gdb *.exe                                             F5

quit

增加/取消断点                    break  LineNumber                    F9

         clear   LineNumber 

单步运行        next                                                      F10

step                                                      F11

开始调试运行      run                                                       F5

 运行到下一个断点    continue                                             F5

结束调试        kill                                                       shift+F5

时间: 2024-10-23 14:36:46

Linux GDB常用命令一栏的相关文章

Linux系统管理常用命令

Linux系统管理常用命令 分类: Linux2011-01-10 18:26 1538人阅读 评论(0) 收藏 举报 linuxcommandservicenginxuserunix 目录(?)[+] 1. 时间date 1)显示当前时间: date .//Wed Jul 29 11:05:11 CST 2009  2)date修改时间:date -s  date 修改时间2007-08-29 14:41 date -s 14:36:30   //时间为14点36分30秒 date 08291

嵌入式Linux GCC常用命令

本文和大家分享的主要是嵌入式Linux GCC常用命令相关内容,一起来看看吧,希望对大家学习嵌入式Linux有所帮助. 1.简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective C 语言.Pascal 语言.COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等.而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 

GDB常用命令使用说明(一)

本文由霸气的菠萝原创,转载请注明出处:http://www.cnblogs.com/xsln/p/gdb_instructions1.html 全部关于gdb的文章索引请点这里 GDB(GNU Debugger)是在Unix以及类Unix系统下的调试工具.功能极其强大,几乎涵盖了你所需要的全部功能. GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的定制要求随心所欲的运行程序. 2.可让被调试的程序在你所指定的调置的断点处停住. 3.当程序被停住时,可以检查此时你的程序中所

工作中用到的 Linux/Unix 常用命令

LINUX平时工作中用到的常用命令 :       scp是有Security的文件copy,基于ssh登录.操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令. scp /home/1.gif [email protected]:/home/root 然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始cp和ungzip了 如果想反过来操作,把文件从远程主机copy到当前系统,也很简单: scp [email protected]

linux下常用命令备忘

转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删除退格键,按住CTL键同时按delete Linux搜索 # find / -name "xxx.conf" 查看linux是32位还是64位的命令 #file /sbin/init #getconf LONG_BIT #getconf -a 在Linux和Windows下都可以用nslo

linux系统管理常用命令--top

linux系统管理常用命令--top top显示进程所占的系统资源,具体用法介绍如下: top命令用于动态监控进程所占的系统资源,默认每隔3秒变一次.它的特点是把占用系统资源(CPU.内存.磁盘I/O等)最高的进程放到最前面!上例中,top命令打印出了很多信息.包括系统负载(loadaverage).进程数(Tasks).CPU使用情况.内存(Mem)使用情况以及交换分区使用情况. 其中,VIRT这一项表示进程所占的虚拟内存,RES这一项为进程所占的真实内存大小,而%MEM这一项为使用内存的百分

【Linux笔记】Linux的常用命令-文件管理命令

Linux的常用命令 文件管理命令 i.     ls 文件查看 ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件 ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等. ls -F 在每一个文件的末尾加上一个字符说明该文件的类型. "@"表示符号链接."|"表示FIFOS."/"表示目录."="表示套接字. ls -s 在每个文件的后面打印出文件的大小. size(大小) ls -r 对目录

linux的常用命令和配置

1.tar.gz包解压 [[email protected] crawler]# ls com.ericsson.cdm.crawler-0.0.1-SNAPSHOT-dist.tar.gz [[email protected] crawler]# tar zxvf com.ericsson.cdm.crawler-0.0.1-SNAPSHOT-dist.tar.gz com.ericsson.cdm.crawler-0.0.1-SNAPSHOT/lib/log4j-1.2.14.jar ...

Linux中常用命令 <一>

本笔记中记录的命令来源于 <Linux C 编程实战> ----------------------------------------------------------------------------- 1.查看当前目录命令 pwd 2.改变当前目录 cd 3.显示目录或文件信息命令 ls 格式: ls [选项] <目录或文件名> 主要选项如下: -a 显示所有的文件和目录 -l  以长格式显示文件信息 -t 将结果按修改时间进行排序,新的文件或目录在前面 -R 递归列出目