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

Linux--gdb调试


一.安装gdb

 sudo apt install gdb



二.使用gdb 

三.gdb的相关操作

gdb 可执行文件名 

显示代码: l 

加断点: b 行号

 启动程序:r(运行之前一定要加断点)

查看断点信息: info break/info b

删除断点信息:delete 断点编号

单步执行:n

打印 :p

显示:display 变量名:

退出:q 


 三.其他操作

gdb命令(全):
l:显示main函数所在的文件的源代码
list 文件名:num 显示文件名文件num行上下的源代码(多文件)
b 行号:给指定行添加断点
b 函数名:给指定函数的第一有效行添加一个断点
info break:显示断点信息;(info b)
delete 断点号:删除指定断点
r(run):运行程序
n(next):单步执行
c(continue):继续执行,直接执行到下一个断点处
s:进入将要被调用的函数中执行
finish:跳出函数;
q:退出调试

bt:显示函数调用栈
disable 断点号:将断点设定为无效的,不加断点号,将所有断点设置为无效
enable 断点号:将断点设定为有效的,不加断点号,将所有断点设置为有效;
p val:打印变量val的值
p &val:打印变量val的地址
p a+b:打印表达式的值
p arr(数组名):打印数组所有元素的值
p   *arr@len:用指向数组的指针打印数组所有元素的值
display:自动显示,参数和p命令一样;
info display:显示自动显示信息
undisplay+编号:删除指定的自动显示
ptype val:显示变量类型

补充命令:
多进程的调试命令:
(gdb) set follow-fork-mode mode
mode可以选择parent或者child,即:选择调试哪个进程
注意:未被跟踪调试的进程会直接执行结束;
多线程调试命令:
1)利用info threads查看线程信息;
2)thread id:调试目标id指定的线程;
3)set scheduler-locking off|on|step;
"off"表示不锁定任何线程;
"on"只有当前被调试的线程继续运行;
"step"在单步执行的时候,只有当前线程会执行;


本篇完!

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

相关文章:

  • JavaSE(上)-Day6
  • (二十五)Flask之MTVMVC架构模式Demo【重点:原生session使用及易错点!】
  • [ C++ ] STL---list的使用指南
  • 数据可视化-ECharts Html项目实战(2)
  • 【Network Management】DCM模块唤醒网络是主动唤醒还是被动唤醒
  • yum repolist命令的介绍
  • 【日志分析】Android 运营商名称显示优先级(AlphaTag/SPN)
  • ocp考试是中文还是英文?ocp认证好考吗
  • python问题:vscode切换环境,pip安装库网络错误,不使用anaconda安装库
  • 理财第一课:炒股词典
  • 矩阵消元-MIT
  • 基于nodejs+vue班级管理系统的设计与实现-flask-django-python-php
  • 2024年起,游戏开发团队62%的从业人员使用AI智能技术
  • mysql 主从复制、读写分离、高可用
  • 力扣爆刷第100天之hot100五连刷86-90
  • Sublime Text3 C/C++一键调试运行代码
  • robots协议详解:爬虫也要有边界感
  • C#面:简述 var 和 dynamic
  • S32 Design Studio PE工具配置DMA
  • 【Effective C++】36绝不重新定义继承而来的non-virtual 函数
  • STM32-DMA数据转运
  • Vue 3 + TypeScript 项目中全局挂载并使用工具函数
  • 第二门课:改善深层神经网络<超参数调试、正则化及优化>-超参数调试、Batch正则化和程序框架
  • 漫谈微服务网关
  • 进击的PostgreSQL
  • 本地gitlab-runner的创建与注册
  • 《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》
  • 剑指offer力扣题集
  • 【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议(ICBADS 2024)
  • 爬虫技术实战案例解析