|
sEMU
|
软件调试器 (Software Debugger) 接口,提供类似 GDB 的交互式运行监控功能。 更多...
#include <sdb.hpp>

Public 成员函数 | |
| SDB (Core *core, guest_mem *mem, ElfLoader *loader=nullptr) | |
| 初始化调试器系统 | |
| ~SDB () | |
| 销毁调试器实例并释放相关资源 | |
| void | sdb_mainloop () |
| 启动 REPL (读取-求值-打印循环) 交互式主循环,捕获指令并执行调试命令 | |
Private 成员函数 | |
| void | cmd_c (const std::vector< std::string > &args) |
| 继续执行命令 (continue) | |
| void | cmd_q (const std::vector< std::string > &args) |
| 退出仿真器命令 (quit) | |
| void | cmd_si (const std::vector< std::string > &args) |
| 单步执行命令 (step instruction) | |
| void | cmd_info (const std::vector< std::string > &args) |
| 打印程序状态信息命令 (info) | |
| void | cmd_x (const std::vector< std::string > &args) |
| 扫描内存命令 (examine) | |
| void | cmd_trace_func (const std::vector< std::string > &args) |
| 跟踪函数调用命令 (尚未实现) | |
| void | cmd_help (const std::vector< std::string > &args) |
| 打印帮助信息命令 (help) | |
| uint64_t | exec_si_bare (uint64_t steps) |
| 裸机单步执行模式 | |
| uint64_t | exec_si_trace (uint64_t steps) |
| 追踪单步执行模式 (带访存与寄存器打印) | |
| uint64_t | exec_si_diff (uint64_t steps) |
| 差分测试单步执行模式 (与参考模拟器进行状态比对) | |
Private 属性 | |
| Core * | core |
| guest_mem * | mem |
| ElfLoader * | elf_loader |
软件调试器 (Software Debugger) 接口,提供类似 GDB 的交互式运行监控功能。
支持通过 EBREAK 动态触发断点、原生执行日志记录、追踪执行边界 (Trace)、 以及检查原生寄存器变量和内存状态。
初始化调试器系统
| core | 指向原生 Verilated 模型核心实例的指针,用于控制和检查处理器状态 |
| mem | 指向客户机内存的指针,用于检查物理内存 |
| loader | (可选) 指向 ELF 加载器的指针,用于符号解析(如函数地址查找) |
| SDB::~SDB | ( | ) |
销毁调试器实例并释放相关资源
|
private |
继续执行命令 (continue)


|
private |
打印帮助信息命令 (help)

|
private |
打印程序状态信息命令 (info)

|
private |
退出仿真器命令 (quit)

|
private |
单步执行命令 (step instruction)


|
private |
跟踪函数调用命令 (尚未实现)


|
private |
扫描内存命令 (examine)

|
private |
裸机单步执行模式
| steps | 要执行的步数 |


|
private |
差分测试单步执行模式 (与参考模拟器进行状态比对)
| steps | 要执行的步数 |


|
private |
追踪单步执行模式 (带访存与寄存器打印)
| steps | 要执行的步数 |


| void SDB::sdb_mainloop | ( | ) |
启动 REPL (读取-求值-打印循环) 交互式主循环,捕获指令并执行调试命令


|
private |
|
private |
|
private |