mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-02 20:18:12 +00:00
programmatic address range annotations; pipe -> ctrl entities; render in memory view
This commit is contained in:
@@ -24,6 +24,7 @@ DMN_EventKindTable:
|
||||
{SetThreadColor}
|
||||
{SetBreakpoint}
|
||||
{UnsetBreakpoint}
|
||||
{SetVAddrRangeNote}
|
||||
}
|
||||
|
||||
@table(name)
|
||||
|
||||
@@ -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] =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user