From eadd49072ae1c8cbf82ed6bebaa060ccdb6627d0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 14 Oct 2024 15:10:44 -0700 Subject: [PATCH] restart path, breakpoint vaddr editing path --- src/dbg_engine/dbg_engine_core.c | 22 +--------------------- src/raddbg/raddbg_core.c | 9 +++++++++ src/raddbg/raddbg_main.c | 2 +- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index 69cf1562..8c3e6f87 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -2308,28 +2308,8 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_P }break; case D_CmdKind_Restart: { - // rjf: kill all d_cmd(D_CmdKind_KillAll); - -#if 0 // TODO(rjf): @msgs - // rjf: gather targets corresponding to all launched processes - RD_EntityList targets = {0}; - { - RD_EntityList processes = rd_query_cached_entity_list_with_kind(RD_EntityKind_Process); - for(RD_EntityNode *n = processes.first; n != 0; n = n->next) - { - RD_Entity *process = n->entity; - RD_Entity *target = rd_entity_from_handle(process->entity_handle); - if(!rd_entity_is_nil(target)) - { - rd_entity_list_push(scratch.arena, &targets, target); - } - } - } - - // rjf: re-launch targets - d_cmd(D_CmdKind_LaunchAndRun, .entity_list = rd_handle_list_from_entity_list(scratch.arena, targets)); -#endif + d_cmd(D_CmdKind_LaunchAndRun); }break; case D_CmdKind_StepInto: case D_CmdKind_StepOver: diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 62851590..3e7a970e 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -2506,6 +2506,15 @@ rd_eval_space_write(void *u, E_Space space, void *in, Rng1U64 range) } StringMemberCase(address_location) { + U64 vaddr = 0; + if(try_u64_from_str8_c_rules(str8_cstring_capped(in, (U8 *)in + 4096), &vaddr)) + { + RD_Entity *loc = rd_entity_child_from_kind_or_alloc(entity, RD_EntityKind_Location); + rd_entity_equip_vaddr(loc, vaddr); + rd_entity_equip_name(loc, str8_zero()); + loc->flags &= ~RD_EntityFlag_HasTextPoint; + result = 1; + } } StringMemberCase(function_location) { diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index cdb4cf2c..9393ca34 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -5,7 +5,6 @@ //~ rjf: 0.9.12 TODO notes // // [ ] remainder of @msgs pass: -// [ ] entity listers - kill-specific-process, etc. // [ ] new `restart processes` path // [ ] remainder of @msgs // @@ -521,6 +520,7 @@ // [x] new universal ctx menu, hover, tooltips systems // [x] `switch` replacement (recent files history) // [x] resolving name as file or #include +// [x] entity listers - kill-specific-process, etc. //////////////////////////////// //~ rjf: Build Options