mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-09-23 01:30:04 +00:00
major clean-up pass over unwinding/module-info abstraction, + usage in the debug engine. simplified / cleaned up DWARF helpers for unwind info & expressions. decoupling unwinding / DWARF evaluation from memory read callbacks. light module info now prepared by demon layer - debug engine no longer duplicates per-backend parsing. unwind abstraction layer now does thin abstraction over unwinding backends, debug engine only calls abstraction. clean up demon to have fewer ad-hoc 'queries' on handles, and prefer sending info over debug events when possible / when it fits the usage pattern. move DWARF enum specifications to metacode, generate enums/xlists/tables/etc. decouple raddbg/radbin completely from old parsing helpers. replace portion of DWARF dumping; pull out some new parsing helpers from converter / dumper.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
// Copyright (c) Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
#ifndef BASE_MEMORY_MAP_H
|
||||
#define BASE_MEMORY_MAP_H
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Memory Map Types
|
||||
|
||||
typedef struct MemoryMapRange MemoryMapRange;
|
||||
struct MemoryMapRange
|
||||
{
|
||||
Rng1U64 vaddr_range;
|
||||
void *base;
|
||||
};
|
||||
|
||||
typedef struct MemoryMapRangeNode MemoryMapRangeNode;
|
||||
struct MemoryMapRangeNode
|
||||
{
|
||||
MemoryMapRangeNode *next;
|
||||
MemoryMapRange v;
|
||||
};
|
||||
|
||||
typedef struct MemoryMap MemoryMap;
|
||||
struct MemoryMap
|
||||
{
|
||||
MemoryMapRangeNode *first_range;
|
||||
MemoryMapRangeNode *last_range;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Memory Map Functions
|
||||
|
||||
internal void memory_map_push(Arena *arena, MemoryMap *map, Rng1U64 vaddr_range, void *data);
|
||||
internal U64 memory_map_read(MemoryMap *map, Rng1U64 range, void *dst);
|
||||
#define memory_map_read_struct(map, vaddr, ptr) memory_map_read((map), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr))
|
||||
|
||||
#endif // BASE_MEMORY_MAP_H
|
||||
Reference in New Issue
Block a user