在qemu平台使用gdb调试程序

1、使用gdb在qemu上调试程序

1.1、第一步:在qemu上运行程序并开启gdb server

在这里插入图片描述

  • qemu-system-riscv64 -nographic -machine virt -m 128M -smp 1 -kernel …/bin/test.elf -s -S

1.2、第二步:使用gdb客户端连接gdb server

在这里插入图片描述

-x:指定gdb的配置文件,这个不是必须的。使用配置文件可以提高调试效率,将每次开始gdb调试都需要输入的命令,提前写到配置文件中。

配置文件实现的效果和在命令行手动敲命令是一样的。

2、使用TUI模式调试

在这里插入图片描述

命令功能
layout src显示源码窗口
layout asm显示汇编窗口
layout regs在之前的窗口上再显示寄存器窗口
layout split同时显示源码、汇编窗口
layout next显示下一个layout
layout prev显示上一个layout

3、快捷方式

  • ctrl键 + n:下一条命令(功能和在linux命令行使用“下键”来查看之前输入过的命令)

  • ctrl键 + p:上一条命令(功能和在linux命令行使用“上键”来查看之前输入过的命令)

  • 切换焦点:

    • focus next:切换到下一个显示窗口(切换焦点,也就是可以通过“上下键”来翻看窗口代码)
    • focus prev:切换到上一个显示窗口(切换焦点,也就是可以通过“上下键”来翻看窗口代码)
    • 总结:focus next和focus prev是同时显示两个窗口时使用
  • 查看窗口源码的快捷键:

    • PGUP键:向上翻页
    • PGDN键:向下翻页
    • 上键和下键:上下滑动查看源码
  • shell + linux命令:在gdb命令行使用linux命令

4、gdb常用指令

在这里插入图片描述

5、断点设置指令

break:设置断点,简写bb func              断点函数b file:linenum   断点文件行号b *address       断点地址enable/disable:使能/去使能断点en/dis  1         使能/去使能断点1en/dis             使能/去使能所有断点delete:删除断点delete 1            删除断点1delete               删除所有断点info breakpoints:显示所有断点信息checkpoint:记录断点状态,用于恢复断点。不可用于多线程checkpointrestart 1Info checkpoint:显示checkpoint信息watch:跟踪变量值,当变量值发生变化时,暂停watch    a 局部变量,在跳出当前函数时会失败watch    *0x600af0Info watchpoint:显示watchpoint信息

6、解决SecureCRT软件显示乱码

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

  • 显示乱码的原因是字符编码格式不匹配,SecureCRT软件字符编码默认是“Default”模式

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

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

相关文章

jmeter 压测需要的部分配置

修改jmeter 目录的bin目录下的jmeter.properties文件 解除KeepAlive设置 修改接口的高级中的实现和超时 解除httpclient4.retrycount前的注释符并将0修改为1 即修改为:httpclient4.retrycount1 解除httpclient4.idletimeout前的注释符并修改为合适间隔 即修改为…

创建型模式之工厂方法模式

一、概述 1、工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 2、工厂方法模式:不再提供一个按钮工厂类来统一负责所有产品的创建,而是将具体的按钮创建过程交…

电子电工企业品牌网站建设的作用是什么

电子电工企业在市场中有较高的需求度,比如电子元件、电子产品等,这些都属于高信任度产品,对需求方来说,需要查看商家全部信息、包括资质、产品/服务内容、案例等,因此对电子电工企业来讲,需要贯通品牌路径&…

解决RuntimeError: CUDA error: invalid device ordinal

步骤 首先查看自己设备的cuda版本 #如下linux指令都可以,主要还是以nvidia-smi为主 nvidia-smi nvcc -V用的python版本是3.8 torch版本用的1.12.1cu113 torch网址:https://pytorch.org/get-started/previous-versions/ 安装完后发现出现如下问题&#…

前端路由钩子的神奇之处:你真的了解它们吗?(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

CSS 基础

文章目录 CSS 常见的属性CSS 常见样式行内样式内嵌样式导入样式 CSS 选择器标签选择器id选择器类选择器全局选择器属性选择器组合选择器 CSS 常见应用表格列表导航栏下拉菜单提示工具图片廊 CSS (Cascading Style Sheets,层叠样式表),是一种用…

数据库连接池Druid

在 Spring Boot 项目中,数据库连接池已经成为标配,然而,我曾经遇到过不少连接池异常导致业务错误的事故。很多经验丰富的工程师也可能不小心在这方面出现问题。 在这篇文章中,我们将探讨数据库连接池,深入解析其实现机…

【卡塔尔世界杯数据可视化与新闻展示】

卡塔尔世界杯数据可视化与新闻展示 前言数据获取与处理可视化页面搭建功能实现新闻信息显示详情查看登录注册评论信息管理 创新点结语 前言 随着卡塔尔世界杯的临近,对于足球爱好者来说,对比赛的数据分析和新闻报道将成为关注的焦点。本文将介绍如何使用…

openmediavault debian linux安装配置企业私有网盘(三 )——raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器,一些敏感数据不外流时,使用openmediavault自建NAS系统; 2、在虚拟化环境中自建NAS系统,用于内网办公,或出差外网办公时,企业内的文件共享; 3、虚拟化环…

jmeter配置使用(mac)

前言 这篇文件就是一个笔记,非mac用户不用看了,我这是换了mac,要用jmeter的倒腾。 一、下载 二、使用步骤 1.解压 tgz格式的直接用tar命令就行 tar -zxvf 包名2.启动 一种是进入解压包的bin目录启动 这种方式启动的就是命令框不能关闭&am…

正则表达式详解

什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串…

小区生活污水处理需要哪些设备和工艺

在小区生活中,污水处理是一个非常重要的环节,它关乎到环境的保护和居民的生活质量。因此,了解小区生活污水处理所需要的设备和工艺是至关重要的。 首先,在小区生活污水处理中,需要用到的设备包括污水收集系统、初级沉淀…

多微信聚合聊天:一款简便的管理工具帮你摆脱微信繁琐之困!

在这个信息飞速传递的时代,微信已经成为了人们不可或缺的通信工具之一。然而,由于个人、工作等各种原因,我们可能会拥有多个微信号,而每天切换不同的账号进行聊天,无疑是一项繁琐的任务。 近日,我一位好友向…

互联网加竞赛 python+opencv+机器学习车牌识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

算法:程序员的数学读书笔记

目录 ​0的故事 ​一、按位计数法 二、不使用按位计数法的罗马数字 三、十进制转二进制​​​​​​​ ​四、0所起到的作用​​​​​​​ 逻辑 一、为何逻辑如此重要 二、兼顾完整性和排他性 三、逻辑 四、德摩根定律 五、真值表 六、文氏图 七、卡诺图 八、逻…

vector——OJ题

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、只出现一次的数字1、题目讲解2、思路讲解3、代码实现 二、杨辉三角1、题目讲解2、思路讲解…

用postman进行web端自动化测试

前言 概括说一下,web接口自动化测试就是模拟人的操作来进行功能自动化,主要用来跑通业务流程。 主要有两种请求方式:post和get,get请求一般用来查看网页信息;post请求一般用来更改请求参数,查看结果是否正…

数据结构-迷宫问题

文章目录 1、题目描述2、题目分析3、代码实现 1、题目描述 题目链接:迷宫问题 、 注意不能斜着走! 2、题目分析 (1)0为可以走,1不能走且只有唯一一条通路 (2)我们可以通过判断上下左右来确定…

vue 在for循环中设置ref并获取$refs

一、单循环动态设置ref 1.设置&#xff1a;【:ref“‘XXX’ index”】XXX -->自定义ref的名字 2.获取&#xff1a;let ref eval(‘this.$refs.XXX’ index)[0] 3.示例&#xff1a; 代码如下所示 <template><div class"ref_test"><div v-fo…

两线制(V/F,I/F)频率脉冲信号转换器

两线制(V/F,I/F)频率脉冲信号转换器 型号&#xff1a;JSD TAF-1021S V/F,I/F频率脉冲信号转换器 型号&#xff1a;JSD TAF-1001S 高端型 型号&#xff1a;JSD TAF-1001D 经济型&#xff0c;价格优惠 新款V/F,I/F频率脉冲信号转换器属升级款&#xff0c;产品从性能&#xf…