hp window11 wsl + ubuntu
在这里插入图片描述

what is gdb?

GNU调试器(英语:GNU Debugger,缩写:GDB),是GNU软件系统中的标准调试器,此外GDB也是个具有移携性的调试器,经过移携需求的调修与重新编译,如今许多的类UNIX操作系统上都可以使用GDB,而现有GDB所能支持调试的编程语言有C、C++、Pascal以及FORTRAN。
检查本地已安装:
在这里插入图片描述
在这里插入图片描述

how to use gdb?

用vim写了一个c文件hello.c

#include<stdio.h>int main()
{int i = 0;printf("hello,world");printf("i is %d\n",i);i++ ;printf("i is now %d\n",i);return 0;
}

使用cat命令查看hello.c的内容

在这里插入图片描述
使用gcc编译用于dubug的文件hello.c,会默认生成名为a.out的执行文件

gcc -g hello.C

gcc: The GNU Compiler Collection command for compiling C programs.
-g: This flag tells GCC to include debugging symbols (useful for tools like gdb).
hello.c: The source file to be compiled.
By default, this command generates an executable named a.out on Linux

gdb a.out

在这里插入图片描述
看到(gdb)字说明可以使用gdb命令了
使用gdb的start命令,开始dubeg ,停留在main函数体处。
而list可以在gdb里面列出正在操作的文件内容。

在这里插入图片描述
然后按下Ctrl + X + A开启TUI模式,就是下面这个好看的视图,当然关闭也是此快捷键。
在这里插入图片描述
使用next,可以对程序进行单步跟踪,由原来的第4行走到原来的第5行。
在这里插入图片描述
还可以使用layout split可以看到源码和相对应的汇编。当然这里只是抛砖引玉,使用了gdb中的一部分命令进行演示,常用gdb命令放到文章末尾了,可以慢慢把玩。
在这里插入图片描述最后按下quit(简称q)退出,按下y确认退出gdb调试。体验就此完毕,怎么说呢,之前对gdb比较神秘,现在也算是微微打开了它的神秘面纱。
在这里插入图片描述

Here are some commonly used GDB (GNU Debugger) commandsclick me

在这里插入图片描述
在这里插入图片描述

视图切换:
快捷键 功能说明
Ctrl + X + S 显示 源码视图(等效 layout src)
Ctrl + X + A 显示 汇编视图(等效 layout asm)
Ctrl + X + R 显示 寄存器视图(等效 layout regs)
Ctrl + X + F 显示 函数调用栈视图(等效 layout split,混合源码+汇编)

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android输入法一些常用的命令

Android开发过程可能会遇到Android输入法异常的问题&#xff0c;可以通过如下命令来查看和修改系统的输入法。方便调试。 获取当下系统的所有输入法 adb shell ime list获取当前的可用输入法 adb shell ime list -s获取当前的输入法 adb shell settings get secure default_inp…

Sklearn 机器学习 手写数字识别 加载并查看数据

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Sklearn 机器学习 手写数字识别:加载并查看数据 在机器学习入门案例中,手写数字识别…

卫星通信链路预算之七:上行载噪比计算

在前面的文章中我们介绍了卫星通信链路计算的基础知识&#xff0c;包括&#xff1a; 信噪比分配&#xff1b; 带宽和功带平衡原则&#xff1b; EIRP和G/T&#xff1b; 输入回退&#xff1b; 输入饱和通量密度SFD&#xff1b; 输出回退&#xff1b; 这次我们正式进入正题…

一文读懂PDB格式

最近在做分子对接和分子模拟&#xff0c;涉及到了一些盲区&#xff0c;必去pdb文件是按照列位数储存信息的&#xff0c;跟其他文件的空格或者制表符分割很不同&#xff0c;所以也可能出现一些错误&#xff0c;比如信息错位&#xff0c;因此有必要了深入解下结构相关的格式pdb、…

进阶:PGCE中级专家认证精要

PGCE中级认证的核心价值技术深度&#xff1a;掌控未来生态PostgreSQL不仅是传统关系型数据库的标杆&#xff0c;更是云原生、AI大模型训练、物联网平台等前沿场景的核心支撑。通过PGCE认证&#xff0c;你将掌握&#xff1a;万亿级数据性能调优&#xff1a;从查询优化器原理到执…

AI增强SEO关键词表现

内容概要 随着人工智能技术的不断演进&#xff0c;其在搜索引擎优化领域展现出显著潜力&#xff0c;尤其在关键词表现优化方面发挥着核心作用。本文将从基础概念入手&#xff0c;系统探讨AI如何智能提升关键词的搜索可见性、流量吸引力和转化效率&#xff0c;从而驱动整体SEO策…

PG靶机 - PayDay

一、 初步侦察与服务探测 1.1 端口扫描与服务识别 首先&#xff0c;对目标主机 192.168.163.39 进行一次全面的端口扫描&#xff0c;以识别其上运行的各项服务。 sudo nmap 192.168.163.39 -p- --min-rate5000 -A图 1: Nmap 扫描结果&#xff0c;显示开放 80、445 和 995 等端口…

MySQLl中OFFSET 的使用方法

MySQLl中OFFSET 的使用方法基本语法SELECT column1, column2, ... FROM table_name LIMIT number_of_rows OFFSET offset_value;number_of_rows&#xff1a;指定返回的记录数量。offset_value&#xff1a;从第几条记录开始返回&#xff08;偏移量从 0 开始计数&#xff09;。示…

监管科技(RegTech)应用:技术驱动的合规革命

目录 监管科技(RegTech)应用:技术驱动的合规革命 1. 监管科技革命:数字化合规新范式 2. 技术架构全景 2.1 现代RegTech架构 2.2 合规效率公式 3. 核心技术实现 3.1 智能合约自动化合规 3.2 AI驱动的风险监测引擎 4. 核心应用场景 4.1 KYC/AML全流程自动化 4.2 实时交易监控系…

解决SQL Server连接失败:Connection refused: connect

今天创建数据库&#xff0c;本地连接SQL Server报错&#xff1a;“通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误&#xff1a;Connection refused: connect”报错图如下&#xff1a;查了一圈&#xff0c;问题出在&#xff1a;TCP/IP 没启用。如果问题和我一样&…

Windows bypassUAC 提权技法详解(一)

引言 用户账户控制&#xff08;User Account Control, 简称 UAC&#xff09;是微软自 Windows Vista 起引入的一项安全功能&#xff0c;旨在通过要求用户在执行需要管理员权限的操作时进行确认&#xff0c;从而防止未经授权的系统更改。UAC 的设计初衷是提高系统安全性&#xf…

OpenCV ------图像基础处理(一)

在 OpenCV 的图像处理世界中&#xff0c;除了图像边框处理&#xff0c;还有一些基础且重要的函数和运算&#xff0c;它们在图像编辑、融合等场景中发挥着关键作用。下面我们就来详细介绍cv2.copyMakeBorder()函数的具体参数与作用&#xff0c;以及图像加法运算和加权运算的相关…

Unity宝箱随机事件实现指南

目录 前言 一、简单的使用 新增ChestInteractableEvents&#xff0c;定义宝箱交互事件 新增Box 箱子挂载脚本&#xff0c;配置事件 运行效果 二、完善各种事件 1. 完善生成金币事件 效果&#xff0c;金币飞出 2. 完善生成敌人事件敌人 效果 3. 完善生成药水事件 效…

从单机到分布式:用飞算JavaAI构建可扩展的TCP多人聊天系统

1. 引言&#xff1a;飞算JavaAI与实时通信技术的融合 1.1 为什么需要TCP多人聊天室&#xff1f; 在即时通讯领域&#xff0c;基于TCP协议的聊天室是理解网络编程核心概念的经典案例&#xff0c;其技术价值体现在&#xff1a; 底层协议控制&#xff1a;直接操作Socket实现可靠数…

用 mock 把 ES 单元测试@elastic/elasticsearch-mock 上手

一、为什么“单元测 ES”这么别扭&#xff1f; 测试 ES 代码时&#xff0c;最直觉的做法是连真集群做集成测试&#xff08;Docker 起个 ES&#xff09;&#xff0c;但&#xff1a; 启动 & 数据装填慢&#xff0c;不利于并行&#xff1b;网络/磁盘抖动影响稳定性&#xff1b…

《嵌入式Linux应用编程(三):Linux文件IO系统调用深度解析》

今日学习内容1. 文件IO与标准IO核心对比特性标准IO文件IO实现层C标准库Linux内核系统调用缓冲机制全缓冲/行缓冲无缓冲&#xff08;实时读写&#xff09;操作对象FILE*流指针整型文件描述符&#xff08;fd&#xff09;移植性跨平台兼容Linux特有典型应用场景普通文件操作硬件设…

数据结构之顺序表相关算法题

目录一、移除元素二、删除有序数组中的重复项三、合并两个有序数组总结一、移除元素 移除元素 - 力扣 思路一&#xff1a;就是创建一个临时数组&#xff0c;对原数组进行遍历&#xff0c;找出与val不同的数据放到新数组里&#xff0c;然后再将tmp中的数据导回原数组 这个思…

百胜软件×华为云联合赋能,“超级国民品牌”海澜之家新零售加速前行

报道显示&#xff0c;早在2012年海澜之家就开始布局数字化征程&#xff0c;并于近年对公司全流程信息化进行综合重构升级优化&#xff0c;在采销协同、业财一体等方面突破原有架构&#xff0c;通过信息化架构的增强为业务发展提供支撑。作为新零售重要组成部分的海澜电商信息化…

“Zen 5”: The AMD High-Performance 4nm x86-64 Microprocessor Core

Codenamed “Zen 5,” AMD’s next-generation, energy-efficient high-performance x86 core targets a wide array of client, server, and embedded markets. Fabricated in TSMC’s 4nm FinFET process, the 55mm2 core complex (CCX), shown in Fig. 2.1.1., contains 8.6…

Linux数据库:【表的约束】【表的基本查询】

目录 一.表的约束 1.1空属性 not null 1.2默认值 default ​空属性和默认值一起使用&#xff1f; 1.3列描述 comment 1.4 zerofill 1.5 主键 1.6 自增长 1.7 唯一键 1.8 外键 二. 表的基本查询 2.1 Create 2.1.1单行数据 全列插入 2.1.2多行数据 指定列插入 2…