gdb命令手册

GDB 的命令很多,本文不会全部介绍,仅会介绍一些最常用的。在介绍之前,先介绍GDB中的一个非常有用的功能:补齐功能。它就如同Linux下SHELL中的命令补齐一样。当你输入一个命令的前几个字符,然后输入TAB键,如果没有其它命令的前几个字符与此相同,SHELL将补齐此命令。如果有其它命令的前几个字符与此相同,你会听到一声警告声,再输入TAB键,SHELL将所有前几个字符与此相同的命令全部列出。而GDB中的补齐功能不仅能补齐GDB命令,而且能补齐参数。

本文将先介绍常用的命令,然后结合一个具体的例子来演示如何实际使用这些命令。下面的所有命令除了第一条启动GDB命令是在SHELL下输入的,其余都是GDB内的命令。大部分GDB内的命令都可以仅输入前几个字符,只要不与其它指令冲突。如quit可以简写为q,因为以q打头的命令只有quit。 List可以简写为l,等等。

1.启动GDB

你可以输入GDB来启动GDB程序。GDB 程序有许多参数,在此没有必要详细介绍,但一个最为常用的还是要介绍的:如果你已经编译好一个程序,我们假设文件名为hello,你想用GDB调试它,可以输入gdb hello来启动GDB并载入你的程序。如果你仅仅启动了GDB,你必须在启动后,在GDB中再载入你的程序。

2.载入程序 === file

在GDB内,载入程序很简单,使用file命令。如file hello。当然,程序的路径名要正确。

退出GDB === quit

在GDB的命令方式下,输入quit,你就可以退出GDB。你也可以输入'C-d'来退出GDB。

3.运行程序 === run

当你在GDB中已将要调试的程序载入后,你可以用run命令来执行。如果你的程序需要参数,你可以在run指令后接着输入参数,就象你在SHELL下执行一个需要参数的命令一样。

4.查看程序信息 === info

info指令用来查看程序的信息,当你用help info查看帮助的话,info指令的参数足足占了两个屏幕,它的参数非常多,但大部分不常用。我用info指令最多的是用它来查看断点信息。

4.1 查看断点信息

info br

br是断点break的缩写,记得GDB的补齐功能吧。用这条指令,你可以得到你所设置的所有断点的详细信息。包括断点号,类型,状态,内存地址,断点在源程序中的位置等。

4.2 查看当前源程序

info source

4.3 查看堆栈信息

info stack

用这条指令你可以看清楚程序的调用层次关系。

4.4 查看当前的参数

info args

4.5 传递参数
run [arglist]  或者  set args [arglist]

5.列出源一段源程序 === list

5.1 列出某个函数

list FUNCTION

6. 给变量赋值  === set

6.1 set variable 变量=值

7. 使中断失效或有效 === disable /  enable

7.1 disable 断点编号   可以使某个断点失效  如diable main 可使break main 命令失效

7.2 enable 断点编号    可以使某个断点恢复有效       

8. 删除断点  ===clean / delete

disable只是让某个断点暂时失效,断点依然存在于程序中.如果要彻底删除某个断点,可以使用clear
或delete命令.

8.1 clear: 删除程序中所有的断点.

8.2 clear 行号: 删除此行的断点.

8.3 clear 函数名: 删除该函数的断点.

8.4 delete 断点编号: 删除指定编号的断点.如果一次要删除多个断点,各个断点编号以空格隔开

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5增加的几个新的标签

HTML5又2008年诞生&#xff0c;HTML5大致可以等同于htmlcss3javascriptapi.... so --->支持css3强大的选择器和动画以及javascript的新的函数 先来记录一下吧&#xff01; 1。 <canvas>画布标签 HTML5的新标签 举例&#xff1a; 1 <html>2 <head>3 …

在 Linux 中使用动态磁盘

是否遇到过这样的问题&#xff0c;划分了<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />10G的一个分区&#xff0c;挂接到/home 下&#xff0c;可是随着时间的流逝&#xff0c;10G的空间开始不够用了&#xff0c;需要把它…

vue项目结构(未抽离成.vue文件前的结构)

最终效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>vue项目结构</title><script type"text/javascript" src"./lib/vue-2.4.0.js"></script><scri…

JS之Boolean的toString方法

作用&#xff1a;toString() 方法可把一个逻辑值转换为字符串&#xff0c;并返回结果 语法&#xff1a;booleanObject.toString() 返回值&#xff1a;根据原始布尔值或者 booleanObject 对象的值返回字符串 “true” 或 “false” 注意1&#xff1a;如果调用该方法的对象不是…

linux下exec系列(一)

fork()是用于建立进程的手段之一&#xff0c;但是fork()只能建立相同程序的副本。幸运的是&#xff0c;Linux系统还提供了系统调用exec系列。它可用于新程序的运行。 如果exec调用成功&#xff0c;调用进程将被覆盖&#xff0c;然后从新程序的入口开始执行。这样就产生了一个新…

小程序跳转H5页面

在使用web-view时发现了一个问题总是会过段时间自己跳转到web-view是src地址 由于我是写的轮播图中嵌套一个web-view 所以当时我以为是轮播图和这个web-view冲突了 其实设计就是如此 自己跳 <view class"page-body"><web-view src"{{url}}">&…

MOSS数据库服务器迁移步骤

迁移场景: MOSS场具有四台服务器:两台前端,一台index服务器,一台数据库服务器. 需要把数据库迁移到采用集中存储的数据库集群上. 源数据库服务器和目标数据库服务器处于同一个AD域中,目标数据库服务器集群已经配置好. 迁移步骤如下: (1) 在所有MOSS服务器上停掉所有MOSS服务,包…

React开发(116):ant design search引入

import { Input } from antd;const { Search } Input;

JS之Boolean的valueOf方法

作用&#xff1a;valueOf() 方法可返回 Boolean 对象的原始值 语法&#xff1a;booleanObject.valueOf() 返回值&#xff1a;booleanObject 的原始布尔值 注意&#xff1a;如果调用该方法的对象不是 Boolean&#xff0c;则抛出异常 TypeError 实例&#xff1a;

perror的特殊输出

写了一个非常简单的C语言程序&#xff0c;为了测试perror会把数据输出到哪里。但它的运行结果让我无法理解&#xff0c;望高人解答&#xff1a; 源码&#xff1a; #include <stdio.h>int main(){printf("Hello\n");perror("Hello world\n");return…

实现局部动态的3种建议

1. 如果动态数据是简单&#xff0c;可以直接嵌入js&#xff0c;php中通过echo "document.write(内容);";来输出内容 <script typetext/javascript languagejavascript srccontent.php></script> 2. 如果动态的数据是比较复杂的&#xff0c;可能需要服务器…

我来告诉你为什么中国民营企业管理失败的原因!

我作为负责整个集团的信息总监&#xff0c;虽然算不上真正CIO的能力&#xff0c;但是在我现在的集团公司里大小也算是一个领导了。所以&#xff0c;有机会接触集团的董事长---一个90年代发家的真正民营企业家W&#xff0c;我们集团公司在当地也算得上是有规模的一家&#xff0c…

HTML5中的audio在手机端和微信端的不能自动播放

再做H5页面的时候,发现audio在手机端和微信端添加了autoplay以后还是不可以自动播放,这是因为手机端为了节约流量所设置的 通常解决方法是给一个交互事件&#xff1a; 标签:<audio loop src"/photo/aa.mp3" id"audio" autoplay preload"auto&quo…

我的makefile写法(一)

程序演示了一个通过tcp/ip通讯的server/client程序&#xff0c;都是简单的C程序。源码&#xff1a; server.c #include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <e…

DataNode,NameNode,JobTracker,TaskTracker用jps查看无法启动解决办法

查看tasktracker的50060的地址无法正常查看&#xff0c;主要有两个原因&#xff0c;一个是在/tmp目录下有以前使用2.02版本留下的文件没有删除&#xff0c;二个是因为端口被占用了 解决方法&#xff1a; 一、删除/tmp目录下所有文件 [rootlocalhost hadoop]# su -[rootlocalhos…

Git之简介

Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统&#xff08;没有之一&#xff09; 那什么是版本控制系统&#xff1f; 如果你用Microsoft Word写过长篇大论&#xff0c;那你一定有这样的经历&#xff1a;想删除一个段落&#xff0c;又怕将来想恢复找不回…

控Proxool连接池的活动连接变化情况

/Files/pony/ConnDB.txt(我用到的一个例子) 下面是摘抄的 研究了Proxool连接池的源代码后完成下面的程序&#xff0c;Proxool连接池的配置过程略。 网管u家u.bitscncom /**//* 网管bitscn_com *author 我为J狂 建立日期 2007-4-18 * */ package net.blogjava.lzqdiy; import j…

React开发(118):报错处理

意思大概为&#xff1a;在一次改变state或者props值后&#xff0c;触发render()方法执行&#xff0c;重新渲染DOM的过程中&#xff0c;react不允许再有其他的state或者props值的改变。render()方法必须是纯函数&#xff01;&#xff01;&#xff01;。我的理解就是&#xff1a;…