gdb常用调试命令 + 多进程调试命令

news2024/11/28 0:39:46

要使用 gdb 调试,必须在gcc / g++ 生成执行文件时,加上 -g 选项,那么在生成的时候,就会在该执行文件中加入一些debug信息。

gcc -g -o test test.c

目录

1、常用调试命令

(1) 进入 / 退出调试模式

(2) 开始调试

2、多进程调试命令

1、跟踪父进程或子进程调试

2、进程间切换


1、常用调试命令

(1) 进入 / 退出调试模式

进入调试模式: gdb  执行文件名。如 gdb test

退出调试模式:ctrl + d 或者 quit 命令

(2) 开始调试

实际开始调试时,涉及到的命令可以参考如下表格:

调试命令含义
list / l   行号从某一行开始往下显示,一次显示10行。l 2:表示从第二行开始显示10行的内容。
list / l   函数名显示某个函数的源码。l  main:显示main函数的全部内容
run / r运行程序,遇到断点会停下来
next / n单行执行
step / s进入函数调用
display  变量名跟踪查看一个变量,每次停下来都显示它的值
break / b  行号在某一行设置断点
info break查看断点信息
delete breakpoints n删除序号为 n 的断点,注意是序号,不是行号(使用info break查看断点序号)
delete breakpoints删除所有断点
finish执行完当前函数停下来
continue

直接到达下一个断点

until  行号  直接跳转到指定行。until 5:跳转到第5行

 

2、多进程调试命令

1、跟踪父进程或子进程调试

默认情况下,gdb跟踪的是父进程,如果要查看gdb的跟踪状态,可以输入

show follow-fork-mode      # 查看当前 gdb 的跟踪状态

如果要跟踪子进程,可以输入

set follow-fork-mode child      # 跟踪子进程

如果要重新跟踪父进程,可以输入 

set follow-fork-mode parent     # 跟踪父进程

2、进程间切换

gdb 默认只跟踪一个进程,要实现进程间切换,需要让两个进程都在gdb的控制下。输入下面的指令后,一个进程会处于调试状态(follow-fork-mode决定),另一个会暂停

set show detach-on-fork off     # 让父子进程都在gdb的控制下

查看当前进程的信息

info inferiors        # info 查看当前进程信息

切换到指定进程

inferiors  进程序号    # 上一步可以查到进程序号

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

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

相关文章

mybatis学习:二、 Mybatis的Dao开发、mybatis-config.xml文件的详情

3. Mybatis的Dao开发 ​ 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法。 3.1 Mybatis的核心对象 SqlSessionFactoryBuilder ​ SqlSessionFactoryBuilder用于创建SqlSessionFacoty,SqlSessionFacoty一旦创建完…

nginx学习使用

nginx学习使用一、nginx安装与使用1、linux安装2、linux卸载3、升级4、linux环境下,把nginx设置为开启自启动二、nginx常用命令1、部署命令2、其他命令三、配置文件解析1、系统配置2、各配置指令详解3、日志配置4、跟据上面的命令,实现一个代理配置案例5…

2022FW柯罗芭KLOVA 用极简主义演绎服装美学

万物伊始,一切都是最简单的,后疫情时代,时尚似乎也开始化繁为简,回归本真。LESS IS MORE 诉说着真实的高贵,从不喧哗,服装里讲究的极简风,正是当下时尚和生活方式的最佳体现。 款式极简 极简又高…

Spring Boot中添加Thymeleaf模板

Spring Boot中添加Thymeleaf模板 前面我们讲解了Spring Boot项目的创建、Spring Boot结构信息,自动配置功能等,那么Springboot创建出来,我们最终是要做web开发的,所以我们这章讲解如何用SpringBoot做web开发。 一. Web开发方式 …

Maven 高级篇,Maven常用操作、高级操作、nexus私服搭建

😀😀😀创作不易,各位看官点赞收藏. Maven 高级篇 文章目录Maven 高级篇1、Maven 安装2、Maven 核心概念2.1、坐标2.2、基础操作2.3、依赖2.4、继承2.5、生命周期3、Maven 深入3.1、Spring Boot 打包3.2、超级 POM3.3、build 标签…

计算机网络第八章知识点回顾(自顶向下)

1. 网络安全 1.1 什么是网络安全? 1.2网络中的通信安全 1.2.1 安全攻击的类型:被动攻击 1.2.2 安全攻击的类型:主动攻击 1.3 常见的安全机制 2. 密码学术语 2.1 密码学术语(图示) 2.2加密算法的分类 2.3 传统加密方法&…

专访D-Wave CEO:量子计算的过去、现在和未来

(图片来源:网络) 量子计算可能成为一项颠覆性技术:它建立在听起来非常奇特的物理学基础上,并有望以前所未有的速度和效率解决某些类别的问题。一些人认为,目前在量子计算领域的承诺太多,交付却不…

【wms平台化】一个简单的wms九表架构

仓库管理软件的未来有几个方向:平台化、行业化、一体化、精简化。 然而其中行业化跟精简化,其实都离不开平台化。 也就是说,不论wms软件如何发展,唯有平台化一择。 在本人从事的传统型wms项目中,对于库存的定义是【在…

ch1_系统启动_setup.S

1 功能分析 大写的.s 后缀名, 是为了说明是一个16位, 实模式下的汇编语言, 小写的 s 是保护模式下的汇编语言; 1.1 使用中断,读取机器参数 setup.S 是一个操作系统的加载程序, 主要作用使用 ROM BIOS 中…

我为什么拒绝了一个5年测开经验的候选人

某互联网大厂的测试开发岗位招聘时,收到一位 5 年测试开发经验的候选人,是南京大学软件学院的硕士,毕业后一直在国内的互联网巨头公司从事测试框架和工具平台的开发工作。 他简历中参与开发过的测试框架和工具和当时该公司在做的项目很匹配&…

一. 编程规则

命名风格 1.不能以下划线或美元符号开头或结尾,不许使用中英文混合的模式命名. 2.必须使用驼峰命名,DO/BO/DTP/Vo/AO例外 3.常量名全部大写,单词用下划线隔开 4.抽象命名使用Abstract或Base开头,异常命名使用Exception结尾,测试类以Test结尾,枚举类名带上Enum后缀,枚举成员…

认真学习MySQL的事务日志-Redo日志

事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由锁机制执行。事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。 redo log称为重做日志,提供再写入操作&#x…

考研数据结构大题整合_组一(ZYL组)_做题版

考研数据结构大题整合 目录考研数据结构大题整合一、ZYL组ZYL组一ZYL组二ZYL组三ZYL组四ZYL组五ZYL组六ZYL组七ZYL组八一、ZYL组 ZYL组一 1.一棵树有度为i的结点ni 个(i1,2,3,…m), 求叶结点的个数.(10分) ∑i1m(ni∗i)1−∑i1m(ni)\sum_{i1}^m(n_i *i…

C++单例模板:使用宏函数实现

C单例模板:使用宏函数实现 在我们日常开发中,无可避免需要使用单例模式进行设计类对象,那么实际上我们写单例格式基本都是一样的,那么每次都要写几乎一模一样的代码来实现我们需要的单例对象是不是会觉得很累?下面博主…

新体验经济@2022: 世界杯、啤酒与供应链

【潮汐商业评论/原创】 四年后,世界杯再一次刷屏,绿茵场上挥洒着汗水与泪水,而绿茵场下的观众们也在对诸如“馄饨皮”、“卡塔尔小王子”和球队输赢等话题展开着热烈地讨论。 这其中当然也包括Hans,Hans是一名忠实的足球球迷&am…

mapper-reducer编程搭建

一.虚拟机安装CentOS7并配置共享文件夹 二.CentOS 7 上hadoop伪分布式搭建全流程完整教程 三.本机使用python操作hdfs搭建及常见问题 四.mapreduce搭建 五.mapper-reducer编程搭建 mapper-reducer编程搭建一、打开hadoop二、创建mapper.py、reducer.py及参数文件1.创建 mapper.…

Android Framework 如何学习,如何从应用深入到Framework?

1、为什么要学Android Framework呢? 一方面,面试考察相关内容的可能性高。随着Android开发者越来越多,企业对Android程序员的筛选也有了更高的要求, 考察对Android底层逻辑的理解和思考就是很重要的一个方面,尤其是An…

遥感测深方法综述(一)遥感测深方兴未艾

众所周知,当前世界上许多沿海近岸区域的海图数据更新滞后,甚至直接空白,大约有50%的沿海国家不具备国家级海图制图能力,特别是发展中国家常缺乏足够的水深数据或海图,总体上的浅海测深和制图能力处于从“贫乏”到“具备…

智慧社区管理系统08(维修和柱状图显现)

目录 后端代码 实体类 mapper层 mappers sql语句 Service层 接口 实现类 Controller层 前端部分 列表显示 后端代码 实体类 package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data…

跨境电商:圣诞前的狂欢,超级星期六营销白皮书

“黑五”和“网一”的促销大戏终于告一段落了。Nox聚星获悉,Adobe Analytics的初步统计显示,美国购物者在今年黑色星期五的线上支出达到创纪录的91.2亿美元,增长2.3%。今年的市场表现比预期的要好,对跨境卖家而言,是个…