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

【Linux】Linux环境基础开发工具_6

文章目录

  • 四、Linux环境基础开发工具
    • gdb
  • 未完待续


四、Linux环境基础开发工具

gdb

我们已经可以写代码了,也能够执行代码了,但是代码错了该如何调试呢?Linux中可以使用 gdb 工具进行调试。
我们写一个简单的程序:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是我们尝试使用命令时,发现根本用不了,原因是 gcc/g++编译时默认的是 release 模式 ,而我们都知道,release 模式不可以调试,只有 debug 模式才能调试
那如何使其编译时使用 debug 模式呢?在末尾加上 -g 选项就可以使用 debug 模式
在这里插入图片描述
在这里插入图片描述

gdb 的基本调试指令(gdb 可以自动记录最近一次的命令):
l + 行号 :显示指定行之后的代码。
r :可以执行程序。
b + 行号:在指定行打断点。
b + 函数名:在函数入口处打断点。
b + 文件名 + :在某个文件程序内打断点,搭配上面使用。
info b:查看断点。
d + 断点编号:删除相应断点。
disable + 断点编号:禁用相应断点。
enable + 断点编号:启用相应断点。
n :逐过程(不进入函数内部)。
s :逐语句(进入函数内部)。
p + 变量名:显示变量的当前值(不是常显示)。
display + 变量名:显示变量的当前值(常显示)。
undisplay + 变量编号:取消 display 常显示的变量。
c :从一个断点运行程序到下一个断点。
bt :查看调用堆栈。
finish :将一个函数运行结束就停下来。
until + 行号:在一个范围内,直接运行到指定行。
set var + 变量名 + 值:修改一个变量的内容。


未完待续

http://www.lryc.cn/news/372296.html

相关文章:

  • Redis宣布商用后,Redis国产化替代方案有那些?
  • Go API
  • 基于STM32的简易智能家居设计(嘉立创支持)
  • 【YOLOv5/v7改进系列】改进池化层为RT-DETR的AIFI
  • 使用Python和Matplotlib绘制复杂数学函数图像
  • 淘宝/1688获得店铺的所有商品(商品列表)
  • 【MySQL】锁机制
  • LangChain入门学习笔记(一)——Hello World
  • [ROS 系列学习教程] 建模与仿真 - 使用 Arbotix 控制机器人
  • java:使用JSqlParser给sql语句增加tenant_id和deleted条件
  • 华三HCL模拟器安装及华三防火墙配置
  • MySQL基础---库的操作和表的操作(配着自己的实操图,简单易上手)
  • 【6】第一个Java程序:Hello World
  • pytorch神经网络训练(AlexNet)
  • 构建大语言模型友好型网站
  • Git代码冲突原理与三路合并算法
  • 聆思CSK6大模型开发板英语评测类开源SDK详解
  • 通用大模型VS垂直大模型,你更青睐哪一方?
  • Python第二语言(十四、高阶基础)
  • python脚本之调用其他目录脚本
  • C# 事件(Event)定义及其使用
  • 2.负载压力测试
  • 【AI工具】jupyter notebook和jupyterlab对比和安装
  • Linux 基本指令3
  • 在Linux系统中,可以使用OpenSSL来生成CSR(Certificate Signing Request)、PEM格式的公钥和PEM格式的私钥。
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 团队派遣(100分) - 三语言AC题解(Python/Java/Cpp)
  • Python数据分析与机器学习在医疗诊断中的应用
  • vite.config.js如何使用env的环境变量
  • MySql几十万条数据,同时新增或者修改
  • 如何提高MySQL DELETE 速度