programmatic address range annotations; pipe -> ctrl entities; render in memory view

This commit is contained in:
Ryan Fleury
2025-06-08 17:37:55 -07:00
parent bb2900c2b7
commit 4926f6cfc8
15 changed files with 225 additions and 57 deletions
+1
View File
@@ -24,6 +24,7 @@ DMN_EventKindTable:
{SetThreadColor}
{SetBreakpoint}
{UnsetBreakpoint}
{SetVAddrRangeNote}
}
@table(name)
+2 -1
View File
@@ -4,7 +4,7 @@
//- GENERATED CODE
C_LINKAGE_BEGIN
String8 dmn_event_kind_string_table[20] =
String8 dmn_event_kind_string_table[21] =
{
str8_lit_comp("Null"),
str8_lit_comp("Error"),
@@ -26,6 +26,7 @@ str8_lit_comp("SetThreadName"),
str8_lit_comp("SetThreadColor"),
str8_lit_comp("SetBreakpoint"),
str8_lit_comp("UnsetBreakpoint"),
str8_lit_comp("SetVAddrRangeNote"),
};
String8 dmn_exception_kind_string_table[5] =
+2 -1
View File
@@ -28,6 +28,7 @@ DMN_EventKind_SetThreadName,
DMN_EventKind_SetThreadColor,
DMN_EventKind_SetBreakpoint,
DMN_EventKind_UnsetBreakpoint,
DMN_EventKind_SetVAddrRangeNote,
DMN_EventKind_COUNT,
} DMN_EventKind;
@@ -61,7 +62,7 @@ DMN_ExceptionKind_COUNT,
} DMN_ExceptionKind;
C_LINKAGE_BEGIN
extern String8 dmn_event_kind_string_table[20];
extern String8 dmn_event_kind_string_table[21];
extern String8 dmn_exception_kind_string_table[5];
C_LINKAGE_END
+15
View File
@@ -2560,6 +2560,21 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls)
if(exec) { e->flags |= DMN_TrapFlag_BreakOnExecute; }
}break;
//- rjf: fill set-vaddr-range-note info
case DMN_W32_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE:
{
U64 vaddr = exception->ExceptionInformation[0];
U64 size = exception->ExceptionInformation[1];
U64 name_vaddr = exception->ExceptionInformation[2];
U64 name_size = exception->ExceptionInformation[3];
U8 *name_buffer = push_array(arena, U8, name_size);
dmn_w32_process_read(process->handle, r1u64(name_vaddr, name_vaddr+name_size), name_buffer),
e->kind = DMN_EventKind_SetVAddrRangeNote;
e->address = vaddr;
e->size = size;
e->string = str8(name_buffer, name_size);
}break;
//- rjf: unhandled exception case
default:
{
+1
View File
@@ -58,6 +58,7 @@
#define DMN_w32_EXCEPTION_CLR 0xE0434352u
#define DMN_W32_EXCEPTION_RADDBG_SET_THREAD_COLOR 0x00524144u
#define DMN_W32_EXCEPTION_RADDBG_SET_BREAKPOINT 0x00524145u
#define DMN_W32_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE 0x00524156u
////////////////////////////////
//~ rjf: Win32 Register Codes