再探gdb常用命令

2024-06-18 13:58
文章标签 常用命令 gdb

本文主要是介绍再探gdb常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



前面已经有了一篇对gdb常用命令的总结,见 http://blog.csdn.net/u011848617/article/details/12838875 

这里对目前学过的gdb命令进行了较完整的整理。


1、使用gdb调试代码,就要在编译时添加-g选项。

2、gdb -q —————— 启动gdb时不输出版权说明

3、gdb打开文件:
  (1)gdb filename;
  (2)先输入gdb,然后在gdb命令行输入file filename。

4、gdb选项(gdb中好多命令都有自己的简写字母):
   不输入直接回车 ------------ 重复执行上一条命令
   q(quit) ------------------- 退出gdb
   file filename ------------- 打开文件filename
   l(list) ------------------- 显示10行代码,若再次运行则显示接下来10行代码
   list 5,10 ---------------- 显示第5到10行的代码
   list test.c:5,10 -------- 显示源文件test.c中第5到10行的代码
   list get_sum -------------- 显示get_sum函数周围的代码
   list test.c:get_sum ------- 显示源文件test.c中get_sum函数周围的代码
   shell XXX ----------------- 运行shell命令XXX
   search/forward str -------- 从当前行向前查找第一个匹配的字符串str
   reverse-search str -------- 从当前行向后查找第一个匹配的字符串str
   r(run) -------------------- 运行程序
   help XXX ------------------ 查看命令XXX的使用方法
   help all ------------------ 查看所有命令的使用方法
   whatis 变量或表达式 ------- 显示变量或表达式的数据类型
   set variable 变量=值 ------ 给变量赋值
   kill ---------------------- 结束当前程序的调试
   continue ------------------ 让程序继续执行,直到下一个断点或者运行完为止
   n(next) ------------------- 继续执行下一条语句,遇到函数把函数当作一条语句来执行
   step ---------------------- 继续执行下一条代码,遇到函数会跟踪进入函数
   nexti/stepi --------------- 单步执行一条机器指令
   watch 变量名 -------------- 设置变量监测点
   bt(backtrace) ------------- 显示程序当前运行位置和对当前位置的栈跟踪
   display 变量或表达式 ------ 添加观察点,以后每次运行命令都会显示对应变量或表达式的值
   undisplay num ------------- num为设置的display编号,可以用info display获取,不能用变量名

5、设置断点:
   b(break) 行号 ----------------------- 在第n行设置断点
   break fun_name ---------------------- 为函数fun_name设置断点
   break 行号或函数名 if 条件 ---------- 程序在运行中,当条件满足时,在某行中断暂停执行
   watch 条件表达式 -------------------- 程序运行中,满足条件时暂停执行,不需要写行号
   info breakpoints -------------------- 查看当前所有的断点
   disable 断点编号 -------------------- 使断点n失效
   enable 断点编号 --------------------- 使断点n有效
   clear ------------------------------- 删除本行断点(如果存在的话)
   clear 行号 -------------------------- 删除此行断点
   clear 函数名 ------------------------ 删除该函数的断点
   delete 断点编号 --------------------- 删除指定编号的断点

6、print命令:
   print XXX ------------------------------- 打印输出XXX的值
   print 变量 = 值 ------------------------- 对变量赋值
   print 表达式@要打印值的个数n ------------ 打印以表达式值开始的n个数

7、watch和display设置监测点的区别:
   watch监测只有当监测的变量值发生变化时才显示变量,而且旧值和新值都会显示。
   display监测每一次运行命令都会显示变量的值,只会显示变量的最新值。


这篇关于再探gdb常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072186

相关文章

Linux基础 - 常用命令

目录 零. 简介 一 . 常见 Ubuntu 命令 二. apt-get 下载 三. 网络命令 四. 常用命令的总结 零. 简介 在 Ubuntu 中,命令是用于与操作系统进行交互和执行各种操作的指令。通过在终端中输入命令,可以完成文件管理、系统配置、软件安装、进程管理等各种任务。 一 . 常见 Ubuntu 命令 sudo:“sudo”是“superuser do”

Android常用命令行——gradlew,adb,adb shell

gradlew 下面全是针对 windows 操作系统的。如果是 Linux / Mac 请直接用 ./ 前缀。 gradlew clean //类似Clean Project gradlew -v //查看Gradle、Groovy、Ant、JVM等的版本gradlew build --info //编译并打印日志gradlew dependencies --info //查看详细的依

开发人员必掌握的Git常用命令备忘录清单

基础操作 1、创建ssh key,邮箱可以随便输入,不会做校验 ssh-keygen -t rsa -C "你的邮箱地址" 2、配置Git账号信息,你所有的Git操作记录,都会显示为你设置的昵称。 # 不添加`--global`表示在当前目录下的Git仓库设置,添加表示全局设置。git config --global user.name "你的Git提交昵称"# 邮箱可以随便输入,不会

【c2】编译预处理,gdb,makefile,文件,多线程,动静态库

文章目录 1.编译预处理:C源程序 - 编译预处理【#开头指令和特殊符号进行处理,删除程序中注释和多余空白行】- 编译2.gdb调试:多进/线程中无法用3.makefile文件:make是一个解释makefile中指令的命令工具4.文件:fprint/fgets/fwrite/fread,ftell/rewind/fseek/fflush4.1 文本文件:FILE结构体4.2 二进制文件:没

常用命令: sort学习笔记

本文的sort命令是GNU版本(8.22), 和BSD的sort不同 sort是我最常用Linux命令之一,它的功能就是排序,一般后面还会和uniq搭配,对数据进行去重。 下面的操作假设你有一个文件,叫做chr.txt, 内容如下, 不同列之间用制表符分隔 Chr3 20251812 20254323 +Chr1 471971 473336 -Chr3

VMware ESXi 主机的健康检查常用命令

使用root登录esxi 主机,然后运行下面的一些命令,可以对ESXi的健康状态有个基本了解: 检查主机资源利用情况: esxtop: 实时查看主机资源使用情况,包括CPU、内存、磁盘和网络。esxcli vm process list: 列出当前在主机上运行的虚拟机进程。 [root@localhost:~] esxcli vm process list Windows2012    W

npm常用命令(持续更新)

npm安装命令 本地安装时将模块写入package.json中: 【npm install xxx】安装但不写入package.json;【npm install xxx –save】 安装并写入package.json的”dependencies”中;【npm install xxx –save-dev】安装并写入package.json的”devDependencies”中;【npm in

oracle sqlplus 常用命令

show  user    查看当前用户 conn 用户名/密码  从当前用户切换到另一个用户 disc  断开当前用户oracle 用户连接,并没有退出sql plus 窗口 exit  断开当前oracle 用户连接,并且退出sql plus 窗口 passw 修改用户的密码 password 用户名 linesize 控制每行显示多少个字符 语法:set linesize 字符

Centos7防火墙firewal常用命令介绍

前言 在CentOS 7中,firewalld是默认的防火墙管理工具,它提供了一种简化和易于使用的方法来配置和管理防火墙规则。 firewalld简介 引入:从CentOS 7开始,默认使用firewalld来配置防火墙,而不是传统的iptables。配置文件:firewalld的配置文件以xml格式存储,主要位于/usr/lib/firewalld/和/etc/firewalld/目录中。

maven常用命令以及jar依赖冲突

1 命令 1.1 常用命令 mvn validate 验证项目是否正确 mvn package maven打包 mvn generate-sources 生成源代码 mvn compile 编译 mvn test-compile 编译测试代码 mvn test 运行测试 mvn verify 运行检查 mvn clean 清理项目 mvn install 安装项目到本地仓库 mvn deplo