mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-15 05:19:41 -07:00
processless debug info loading/unloading; separate modules from dbg infos in eval; keep dbg infos around after debugging via config, correllate to new modules, evict when necessary, when generating new versions
This commit is contained in:
1 parent
f9d1ffa5fc
commit
c8c25c0f98
21 files changed
+1289
-899
No files matched your search
+23
-3
@@ -564,15 +564,24 @@ struct E_ConsTypeSlot
|
||||
E_ConsTypeNode *last;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Debug Info
|
||||
|
||||
typedef struct E_DbgInfo E_DbgInfo;
|
||||
struct E_DbgInfo
|
||||
{
|
||||
DI_Key dbgi_key;
|
||||
RDI_Parsed *rdi;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Modules
|
||||
|
||||
typedef struct E_Module E_Module;
|
||||
struct E_Module
|
||||
{
|
||||
DI_Key dbgi_key;
|
||||
RDI_Parsed *rdi;
|
||||
Rng1U64 vaddr_range;
|
||||
U32 dbg_info_num;
|
||||
Arch arch;
|
||||
E_Space space;
|
||||
};
|
||||
@@ -760,6 +769,11 @@ struct E_BaseCtx
|
||||
Arch thread_arch;
|
||||
U64 thread_unwind_count;
|
||||
|
||||
// rjf: debug infos
|
||||
E_DbgInfo *dbg_infos;
|
||||
U64 dbg_infos_count;
|
||||
E_DbgInfo *primary_dbg_info;
|
||||
|
||||
// rjf: modules
|
||||
E_Module *modules;
|
||||
U64 modules_count;
|
||||
@@ -1111,7 +1125,8 @@ read_only global E_String2ExprMap e_string2expr_map_nil = {0};
|
||||
read_only global E_Expr e_expr_nil = {&e_expr_nil, &e_expr_nil, &e_expr_nil, &e_expr_nil, &e_expr_nil};
|
||||
read_only global E_IRNode e_irnode_nil = {&e_irnode_nil, &e_irnode_nil, &e_irnode_nil};
|
||||
read_only global E_Eval e_eval_nil = {{0}, {0}, {0}, &e_expr_nil, {&e_irnode_nil}};
|
||||
read_only global E_Module e_module_nil = {{0}, &rdi_parsed_nil};
|
||||
read_only global E_DbgInfo e_dbg_info_nil = {{0}, &rdi_parsed_nil};
|
||||
read_only global E_Module e_module_nil = {0};
|
||||
read_only global E_CacheBundle e_cache_bundle_nil = {0, {0}, {0}, {0}, {{0}, 0, &e_expr_nil, &e_expr_nil}, {&e_irnode_nil}};
|
||||
thread_static E_BaseCtx *e_base_ctx = 0;
|
||||
thread_static E_IRCtx *e_ir_ctx = 0;
|
||||
@@ -1203,6 +1218,11 @@ internal void e_select_cache(E_Cache *cache);
|
||||
internal void e_select_base_ctx(E_BaseCtx *ctx);
|
||||
internal void e_select_ir_ctx(E_IRCtx *ctx);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Context Accessors
|
||||
|
||||
internal E_DbgInfo *e_dbg_info_from_module(E_Module *module);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Base Cache Accessing Functions
|
||||
//
|
||||
|
||||
Reference in new issue
Block a user