mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 09:18:09 +00:00
demon: always gather 'active' traps - do not require success
This commit is contained in:
+3
-16
@@ -221,25 +221,12 @@ dmn_get_trap_inst(void)
|
|||||||
internal DMN_ActiveTrap *
|
internal DMN_ActiveTrap *
|
||||||
dmn_set_trap(Arena *arena, DMN_Trap *trap)
|
dmn_set_trap(Arena *arena, DMN_Trap *trap)
|
||||||
{
|
{
|
||||||
DMN_ActiveTrap *result = 0;
|
|
||||||
String8 trap_inst = dmn_get_trap_inst();
|
String8 trap_inst = dmn_get_trap_inst();
|
||||||
U8 *swap_bytes = push_array(arena, U8, trap_inst.size);
|
U8 *swap_bytes = push_array(arena, U8, trap_inst.size);
|
||||||
if(dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), swap_bytes) == trap_inst.size)
|
dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), swap_bytes);
|
||||||
{
|
dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), trap_inst.str);
|
||||||
if(dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), trap_inst.str) == trap_inst.size)
|
DMN_ActiveTrap *result = push_array(arena, DMN_ActiveTrap, 1);
|
||||||
{
|
|
||||||
result = push_array(arena, DMN_ActiveTrap, 1);
|
|
||||||
result->trap = trap;
|
result->trap = trap;
|
||||||
result->swap_bytes = str8(swap_bytes, trap_inst.size);
|
result->swap_bytes = str8(swap_bytes, trap_inst.size);
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal B32
|
|
||||||
dmn_remove_trap(DMN_ActiveTrap *active_trap)
|
|
||||||
{
|
|
||||||
B32 is_removed = dmn_process_write(active_trap->trap->process, r1u64(active_trap->trap->vaddr, active_trap->trap->vaddr + active_trap->swap_bytes.size), active_trap->swap_bytes.str);
|
|
||||||
return is_removed;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -280,6 +280,5 @@ internal void dmn_process_iter_end(DMN_ProcessIter *iter);
|
|||||||
internal String8 dmn_get_trap_inst(void);
|
internal String8 dmn_get_trap_inst(void);
|
||||||
|
|
||||||
internal DMN_ActiveTrap * dmn_set_trap(Arena *arena, DMN_Trap *trap);
|
internal DMN_ActiveTrap * dmn_set_trap(Arena *arena, DMN_Trap *trap);
|
||||||
internal B32 dmn_remove_trap(DMN_ActiveTrap *active_trap);
|
|
||||||
|
|
||||||
#endif // DEMON_CORE_H
|
#endif // DEMON_CORE_H
|
||||||
|
|||||||
Reference in New Issue
Block a user