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

OpenVela之模拟器调试

详解 OpenVela 模拟器调试的三种方式

在开发过程中,调试是至关重要的环节。对于 OpenVela 项目,我们可以通过模拟器进行便捷调试,无需依赖真实硬件。本文将详细介绍三种常用的模拟器调试方法,帮助开发者高效排查问题。

一、使用 GDB Console 调试

GDB 是一款强大的命令行调试工具,通过与模拟器的 GDB Server 连接,可实现对 OpenVela 代码的低级调试。

1. 安装必要工具

在 Ubuntu 22.04 系统上,执行以下命令安装所需软件包:

sudo apt update
sudo apt install gdb-multiarch

2. 启动带 GDB 支持的模拟器

通过 -s 和 -S 选项启动模拟器,使其在 TCP 端口 1234 上监听 GDB 连接,并暂停等待 GDB 通知:

./emulator.sh vela -qemu -S -s

在这里插入图片描述

3. 启动 GDB 并连接模拟器

打开新终端,运行 gdb-multiarch 并加载目标程序:

gdb-multiarch nuttx/nuttx

在这里插入图片描述

在 GDB 交互界面中,连接模拟器的 GDB Server:

(gdb) target remote localhost:1234

在这里插入图片描述

4. 常用 GDB 调试命令

  • 设置断点:(gdb) b nx_start(在 nx_start 函数处设置断点)
  • 继续执行:(gdb) c
  • 显示源代码:(gdb) l(查看当前断点附近的代码)
  • 查看断点信息:(gdb) info break
  • 禁用断点:disable <breakpoint-number>
  • 启用断点:enable <breakpoint-number>
  • 删除断点:d <breakpoint-number>
  • 退出 GDB:(gdb) q

二、使用 Visual Studio Code 调试

Visual Studio Code 提供了图形化的调试界面,结合其扩展可更直观地进行调试操作。

1. 安装软件与扩展

  • 下载并安装 Visual Studio Code
  • 安装 C/C++ 扩展包:
code --install-extension ms-vscode.cpptools-extension-pack

在这里插入图片描述

2. 打开工作区

  • 通过菜单 File > Open Folder 选择 OpenVela 源码所在文件夹
  • 或在终端中进入源码目录,执行 code . 直接打开

3. 配置启动文件

  • 按 F5 或在调试视图选择 Run and Debug,触发启动配置文件创建
  • 在生成的 .vscode/launch.json 中填入以下配置:
{"version": "0.2.0","configurations": [{"name": "Debug openvela","type": "cppdbg","request": "launch","program": "${workspaceFolder}/nuttx/nuttx","cwd": "${workspaceFolder}","MIMode": "gdb","miDebuggerPath": "/usr/bin/gdb-multiarch","miDebuggerServerAddress": "localhost:1234"}]
}

4. 启动调试会话

  1. 启动带 GDB 支持的模拟器:
./emulator.sh vela -qemu -S -s
  1. 使用 Run and Debug 视图中的 Configuration 下拉列表,选择 Debug openvela 的配置
  2. F5 启动调试,即可使用图形化界面进行断点设置、变量查看等操作
    在这里插入图片描述

三、使用 Clion 进行远程调试

Clion 是一款强大的 C/C++ IDE,支持通过 SSH 远程连接进行调试。

1. 安装与准备

  • 下载并安装最新版本的 Clion
  1. 可以在Ubuntu的搜狐浏览器访问Clion链接下载.tar文件

  2. 然后执行以下命令创建 opt 目录,然后解压文件:

mkdir -p ~/opt
tar -xzf ~/Downloads/CLion-2025.1.3.tar.gz -C ~/opt/
  1. 解压完成后,即可启动 CLion:
cd ~/opt/clion-2025.1.3/bin/
./clion.sh

在这里插入图片描述

  • 确保远程服务器上已克隆 OpenVela 项目源码

2. 配置 SSH 连接

  1. 可以在 Welcome 页面 Customize | All Settings 打开菜单,如果已经打开工程 可以点击 File | Close Project 返回 Welcome 页面。
  2. 点击 + 号,填写远程服务器的 IP、用户名、端口等信息,测试连接成功后保存

在这里插入图片描述

3. 配置远程项目

  1. 在欢迎页面选择 Remote Development | SSH | New Project
  2. 选择已创建的 SSH 连接,点击 Check Connection and Continue
  3. 选择一个 IDE 版本,然后项目路径选择克隆下来的 vela 工程路径根目录后点击 Start IDE and Connect
    在这里插入图片描述
  4. 等待下载完成后点击确定 Authenticate

在这里插入图片描述

4. 创建调试配置

  1. 点击 Add Configuration | Remote GDB Server并且配置实例如下:

在这里插入图片描述
2. Target 创建样例如下:

在这里插入图片描述

  1. 启动带 GDB 支持的模拟器:
./emulator.sh vela -qemu -S -s

5. 开始调试

  1. 点击 debug 按钮即可进行调试:
    在这里插入图片描述
  2. 如果弹出认证对话框 输入密码或者选择配置的 ssh key 即可:
    在这里插入图片描述
    在这里插入图片描述

总结

通过以上三种方式,开发者可根据自身习惯选择合适的工具进行 OpenVela 模拟器调试。无论是命令行的 GDB、图形化的 VS Code,还是功能全面的 Clion,都能有效提升调试效率,助力项目开发。

http://www.dtcms.com/a/276220.html

相关文章:

  • 【kubernetes】--Controller(StatefulSet)
  • 【PTA数据结构 | C语言版】链式队列的3个操作
  • Git常用命令一览
  • pyqt5界面开发学习
  • 034_多态的实现(编译时 / 运行时)
  • 洛谷 P11961 [GESP202503 五级] 原根判断-提高+/省选-
  • Vue工程化
  • Spring Boot 基础入门与实战:从框架理解到项目搭建
  • 如何检测自动化设备中的直线导轨品质是否优良?
  • Oracle 数据库实战项目
  • SAC : 具有随机Actor的离策略最大熵深度强化学习
  • Android开发中RxJava的使用与原理
  • 杨娇兽の阴谋
  • 基于springboot+Vue的二手物品交易的设计与实现
  • 休闲项目策划与设计实训室:赋能实践育人的重要平台
  • 【学习笔记】Nginx常用安全配置
  • arcgis投影后数据显示问题记录
  • 以电商平台性能测试为例,详细描述Jmeter性能测试步骤,及如何确定用户并发数、用户启动时间、循环次数的设置
  • 算法练习6-大数乘法(高精度乘法)
  • jenkins部署vue前端项目
  • 【TA/Unity】Shader基础结构
  • TCP套接字
  • 网络配置综合实验全攻略(对之前学习的总结)
  • 医学AI前沿论坛第6期|目前主流的医学AI基础模型有哪些?我们应该如何在有限的数据下构建高性能的基础模型?
  • 某某航空 (新版)同盾 blackbox 补环境
  • 迷宫可达性统计问题详解
  • 缓存三剑客解决方案
  • 基于YOLO11的垃圾分类AI模型训练实战
  • 计算机毕业设计ssm医院耗材管理系统 基于SSM框架的医疗物资供应链管理平台 医院低值易耗品信息化监管系统
  • 解决MySql8报错:Public Key Retrieval is not allowed