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

Linux系统gdb调试常用命令

GDB(GNU调试器)是一款常用的调试工具,用于调试C、C++等编程语言的程序。以下是一些常用的GDB命令:

1. 启动程序:
   - `gdb <executable>`:启动GDB调试器,并加载可执行文件。

2. 设置断点:
   - `break <line>`:在指定行设置断点。
   - `break <function>`:在指定函数的入口处设置断点。
   - `break <file>:<line>`:在指定文件的指定行设置断点。
   - `break <address>`:在指定内存地址设置断点。
   - `tbreak <line>`:临时断点,程序执行到该行时暂停一次,然后自动删除断点。
   - `rbreak <regexp>`:使用正则表达式设置断点。

3. 运行程序:
   - `run`:运行程序。
   - `continue`:继续执行程序,直到下一个断点或程序结束。
   - `next`:逐过程执行,不进入函数内部。
   - `step`:逐语句执行,进入函数内部。

4. 查看和修改变量:
   - `print <variable>`:打印变量的值。
   - `display <variable>`:每次停下来时都打印变量的值。
   - `set variable <variable>=<value>`:修改变量的值。

5. 查看堆栈和调用链:
   - `backtrace` 或 `bt`:显示函数调用的堆栈信息。
   - `frame <number>`:切换到指定的堆栈帧。
   - `up`:切换到上一层调用的堆栈帧。
   - `down`:切换到下一层调用的堆栈帧。

6. 单步调试:
   - `next`:执行下一条语句,不进入函数内部。
   - `step`:执行下一条语句,进入函数内部。
   - `finish`:执行完当前函数,并返回到调用该函数的地方。

7. 查看源代码:
   - `list` 或 `l`:显示当前位置附近的源代码。
   - `list <function>`:显示指定函数的源代码。

8. 其他常用命令:
   - `info breakpoints`:显示所有断点的信息。
   - `delete <breakpoint>`:删除指定断点。
   - `watch <expression>`:设置监视点,当表达式的值发生变化时暂停程序。
   - `quit`:退出GDB调试器。

这只是一些常用的GDB命令,GDB还有其他很多强大的功能和命令,可以根据具体的调试需求进行学习和使用。

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

相关文章:

  • Sumo中Traci.trafficlight详解(上)
  • 手写Mybatis:第13章-通过注解配置执行SQL语句
  • spring security - 快速整合 springboot
  • NPM 常用命令(二)
  • ctfhub ssrf(3关)
  • 跨源资源共享(CORS)Access-Control-Allow-Origin
  • 【嵌入式软件开发 】学习笔记
  • CentOS 7上安装Python 3.11.5,支持Django
  • COMPFEST 15H「组合数学+容斥」
  • react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react
  • 【C++入门】string类常用方法(万字详解)
  • 大数据错误
  • 【Node.js】Express-Generator:快速生成Express应用程序的利器
  • SpringMVC的工作流程及入门
  • logging.level的含义及设置 【java 日志 (logback、log4j)】
  • 第 3 章 栈和队列(链栈)
  • 嵌入式面试-经典问题
  • ZLMeidaKit在Windows上启动时:计算机中丢失MSVCR110.dll,以及rtmp推流后无法转换为flv视频流解决
  • 项目(智慧教室)第二部分,人机交互页面实现,
  • 【docker】docker的一些常用命令-------从小白到大神之路之学习运维第92天
  • ubuntu18.04.6的安装教程
  • 小白的第一个RNN(情感分析模型)
  • 华为云 存在部支持迁移的外键解决方法
  • C# winform控件和对象双向数据绑定
  • 达梦8 在CentOS 系统下静默安装
  • flink k8s sink到kafka报错 Failed to get metadata for topics
  • 利用大模型MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7实现零样本分类
  • 代码随想录二刷day07
  • 点云从入门到精通技术详解100篇-点云的泊松曲面重建方法
  • 【STM32】学习笔记(串口通信)