当前位置: 首页 > news >正文

Linux高级编程--gdb调试

作者简介:大家好我是小唐同学(๑>؂<๑),为梦想而努力的小唐,让我们一起加油!!!

个人主页:小唐同学(๑>؂<๑)的博客主页

大二学生一枚,可以互相交流知识

目录

gdb介绍:

功能:

gcc生成可执行文件:

练习题:

答案:


gdb介绍:

gdb是一个功能强大,运行稳定的程序调试工具,通过gcc配合的基于Linux的软件开发提供一个完善的调试环境

功能:

设置断点
单步执行
查看程序中的变量的值
动态改变运行时变量的值
分析程序崩溃的原因


gcc生成可执行文件:

gcc add.c -o test
./test    执行程序
启动gdb进行调试
在使用gdb调试程序前,可执行文件程序编译应该加上 -g
命令:
gcc add.c -o test -g
生成的文件是带调试信息表的文件(文件变大)
进入gdb调试方式:
gdb test
r:运行程序
break:设置断点(break 9---在第9行停止)
next命令:单步运行到函数调用处,用next命令进行单步执行,会自动执行函数内部语句(无论函数内部有多少代码,next指令都会一步执行完),并返回被调用处
step:单步执行需要跳转到函数内部执行,就要用step命令跳转到函数内部去执行,在函数内部再用next命令进行单步执行
print:在程序运行过程中,可以通过print命令来查看某个变量的值,进而跟踪观察这个变量。看这个变量在赋值后和希望值是否一致.
list:查看源程序(默认10行)
continue:继续运行程序直到结束或下一个断点处
quit   退出gdb调试

练习题:

为了利用 GDB 调试 C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用 GCC 编译源程序时,需要利用选项( )

  • A、

    –O2

  • B、

    -E  

  • C、

    –Wall 

  • D、

    -g

2【单选题】

在GDB调试程序下,若需要列出当前断点处的程序源代码则输入( )。

  • A、

    l

  • B、

    c

  • C、

    b

  • D、

    p

3【单选题】

在GDB调试程序下,若需要在当前断点处的单步执行程序则输入( )。

  • A、

    l

  • B、

    n

  • C、

    b

  • D、

    c

4【判断题】

gdb可直接调试C源程序,无需对其编译。()

5【判断题】

GDB命令“l”的功能为查看变量信息。()

答案:

dabxx

相关文章:

  • 家校协同小程序实战教程
  • 沉睡者C - 想要通过网上来赚钱,悟性很重要
  • Java集合面试小结(2)
  • 【uiautomation】微信群发消息,可发送文本 文件
  • 【network】windows 获取Adapter 名称
  • Python 基础学习
  • 网课搜题接口公众号搭建详细步骤
  • 继承的使用以及super关键字和重写以及Object类
  • Spring中的AOP翻转的使用与在事务管理中的表现
  • DataOps: A New Discipline 数据治理的下一步
  • 一些现代 Javascript 技巧
  • Java学习 --- 类方法(静态方法)
  • 网课答案搜题方法详细步骤
  • promise函数
  • 何云伟全国相声巡回演,首场定在北京吉祥戏楼,不知道送不送鸡蛋
  • isset在php5.6-和php7.0+的一些差异
  • Koa2 之文件上传下载
  • markdown编辑器简评
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • webgl (原生)基础入门指南【一】
  • 创建一个Struts2项目maven 方式
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 好的网址,关于.net 4.0 ,vs 2010
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端面试总结(at, md)
  • 浅谈web中前端模板引擎的使用
  • 实现菜单下拉伸展折叠效果demo
  • 使用docker-compose进行多节点部署
  • 自制字幕遮挡器
  • 国内开源镜像站点
  • #pragma 指令
  • #stm32整理(一)flash读写
  • (python)数据结构---字典
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (一)VirtualBox安装增强功能
  • (一)为什么要选择C++
  • (转)IOS中获取各种文件的目录路径的方法
  • . Flume面试题
  • .“空心村”成因分析及解决对策122344
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 解决重复提交问题
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net连接MySQL的方法
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @Autowired @Resource @Qualifier的区别
  • @Autowired自动装配
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • [C语言]——柔性数组
  • [hihocoder1395] 最大权闭合子图
  • [js]js设计模式小结
  • [php] 数据结构算法(PHP描述) 快速排序 quick sort
  • [PY3]——logging