#egui #memory #editor #emulator #address-range

egui_memory_editor

为 egui 库提供的简单内存编辑器

16 个版本

0.2.10 2024年8月3日
0.2.9 2024年4月10日
0.2.8 2024年2月2日
0.2.7 2023年12月28日
0.1.1 2021年2月10日

#144 in GUI

Download history 2/week @ 2024-05-19 40/week @ 2024-06-09 30/week @ 2024-06-16 436/week @ 2024-06-23 533/week @ 2024-06-30 230/week @ 2024-07-07 1/week @ 2024-07-14 230/week @ 2024-07-28 45/week @ 2024-08-04 2/week @ 2024-08-11

每月下载量 277 次

MIT/Apache

48KB
690 代码行

Egui Memory Editor

Crates io link Documentation on docs.rs

这是一个为即时模式 UI 库 egui 提供的简单内存编辑器/查看器工具

screenshot

功能

  • 可以创建具有不同地址范围的多个内存区域。
  • 可以使用 goto 函数跳转到任意地址。
  • 可以通过右键单击在主 UI 中选择某些值,然后您可以在 数据预览 部分中查看它们。
  • 有一个可选的写入函数,允许通过左键单击来编辑字段。

使用方法

最好查看 examples/ 文件夹中的示例,但可以初始化编辑器为任何选择的结构。

例如,一个自定义内存结构

let mut memory = Memory::new();
// Create a memory editor with a variety of ranges, need at least one, but can be as many as you want.
let mut mem_editor = MemoryEditor::new()
.with_address_range("All", 0..0xFFFF)
.with_address_range("IO", 0xFF00..0xFF80)
.with_window_title("Hello Editor!");

// In your egui rendering simply include the following.
// The write function is optional, if you don't set it the UI will be in read-only mode.
let mut is_open = true;
mem_editor.window_ui(
    ctx,
    &mut is_open,
    &mut memory,
    |mem, address| mem.read_value(address).into(),
    |mem, address, val| mem.write_value(address, val),
);

运行示例

要运行示例,请执行以下操作

  1. git克隆 https://github.com/Hirtol/egui_memory_editor
  2. cdegui_memory_editor
  3. cargorun --examplesimple --release

功能展示

gif

依赖项

~4.5–9.5MB
~85K SLoC