在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个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

MySQL按序批量操作大量数据

MySQL按序批量操作大量数据(Java、springboot、mybatisplus、ElasticSearch) 以同步全量MySQL数据到ElasticSearch为例。 核心代码 业务逻辑: public boolean syncToElasticsearch() {log.info("Starting data synchronization to El…

第13节:Vue3 声明反应状态ref()

下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用声明反应状态ref()&#xff1a; vue复制代码<template> <view> <text>{{ message }}</text> <button click"changeMessage">点击改变文本</button> </v…

CSS 基础

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

数据库连接池Druid

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

Arthas 排查JAVA应用问题 —— 筑梦之路

简介 Arthas 是阿里开源的一款 Java 应用诊断工具&#xff0c;可以在线排查问题&#xff0c;动态跟踪 Java 代码&#xff0c;以及实时监控 JVM 状态。 官方网站&#xff1a;arthas 快速入门 1. 下载 wget https://arthas.aliyun.com/arthas-boot.jar 2. 运行 需要在运行…

【细说Java内部类】

系列文章目录 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 文章目录 一、为什么需要内部类&#xff1f; 1.内部类的作用 2.内部类的使用场景 二、内部类的分类 1.成员内部类&#xff08;实例内部类&#xff09; 2.静态内部类 3.局部内部类 4.匿名内部类 总结 前…

ES如何提高准确率之【term-centric】

提高准确率的方法有很多&#xff0c;但是要在提高准确率的同时保证召回率往往比较困难&#xff0c;本文只介绍一种比较常见的情况。 问题场景 我们经常搜索内容&#xff0c;往往不止针对某个字段进行搜索&#xff0c;比如&#xff1a;标题、内容&#xff0c;往往都是一起搜索…

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

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

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

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

jmeter配置使用(mac)

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

正则表达式详解

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

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

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

【数据结构】——排序算法简答题模板

目录 一、内排序和外排序二、排序算法的稳定性三、插入排序&#xff08;一&#xff09;直接插入排序的步骤&#xff08;二&#xff09;直接插入排序的稳定性&#xff08;三&#xff09;折半插入排序的步骤&#xff08;四&#xff09;希尔排序的步骤 四、交换排序&#xff08;一…

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

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

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

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