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

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.xdnf.cn/news/15180.html

相关文章:

  • Go内存分配
  • vite如何生成gzip,并在服务器上如何设置开启
  • 如何在 Windows 10 上安装 RabbitMQ
  • 如何在 Visual Studio Code 中使用 Cursor AI
  • 【嵌入式硬件实例】-555定时器实现倍压电路
  • C语言:20250712笔记
  • 系统学习Python——并发模型和异步编程:基础实例-[使用线程实现旋转指针]
  • Ruby如何采集直播数据源地址
  • tiktok 弹幕 逆向分析
  • 后端定时过期方案选型
  • Linux/Ubuntu安装go
  • ​Windows API 介绍及核心函数分类表
  • MySQL 5.7.29升5.7.42实战:等保三漏洞修复+主从同步避坑指南
  • 一分钟快速了解Apache
  • Ether and Wei
  • 【android bluetooth 协议分析 07】【SDP详解 2】【SDP 初始化】
  • 详解缓存淘汰策略:LRU
  • python数据分析及可视化课程介绍(01)以及统计学的应用、介绍、分类、基本概念及描述性统计
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十一课——图像均值滤波的FPGA实现
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十课——图像gamma矫正的FPGA实现
  • C++11的整理笔记
  • 【LeetCode 热题 100】25. K 个一组翻转链表——迭代+哨兵
  • 【YOLOv8-obb部署至RK3588】模型训练→转换RKNN→开发板部署
  • Jenkins+Gitee+Docker容器化部署
  • super task 事件驱动框架
  • 用AI做带货视频评论分析【Datawhale AI 夏令营】
  • 冒泡排序和快速排序
  • 「Linux命令基础」文本模式系统关闭与重启
  • 【C/C++】动态内存分配:从 C++98 裸指针到现代策略
  • Linux操作系统之进程间通信:命名管道