mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-26 13:35:00 -07:00
fix primary module selection in multi-process scenarios
This commit is contained in:
@@ -4665,17 +4665,17 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg)
|
||||
process = process->next)
|
||||
{
|
||||
if(process->kind != CTRL_EntityKind_Process) { continue; }
|
||||
for(CTRL_Entity *module = process->first;
|
||||
module != &ctrl_entity_nil;
|
||||
module = module->next)
|
||||
for(CTRL_Entity *mod = process->first;
|
||||
mod != &ctrl_entity_nil;
|
||||
mod = mod->next)
|
||||
{
|
||||
if(module->kind != CTRL_EntityKind_Module) { continue; }
|
||||
CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath);
|
||||
if(mod->kind != CTRL_EntityKind_Module) { continue; }
|
||||
CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(mod, CTRL_EntityKind_DebugInfoPath);
|
||||
DI_Key dbgi_key = {dbg_path->string, dbg_path->timestamp};
|
||||
eval_modules[eval_module_idx].rdi = di_rdi_from_key(di_scope, &dbgi_key, max_U64);
|
||||
eval_modules[eval_module_idx].vaddr_range = module->vaddr_range;
|
||||
eval_modules[eval_module_idx].vaddr_range = mod->vaddr_range;
|
||||
eval_modules[eval_module_idx].space = (U64)process;
|
||||
if(contains_1u64(module->vaddr_range, thread_rip_vaddr))
|
||||
if(mod == module)
|
||||
{
|
||||
eval_modules_primary = &eval_modules[eval_module_idx];
|
||||
}
|
||||
|
||||
@@ -8202,12 +8202,12 @@ df_core_begin_frame(Arena *arena, DF_CmdList *cmds, F32 dt)
|
||||
U64 eval_module_idx = 0;
|
||||
for(DF_EntityNode *n = all_modules.first; n != 0; n = n->next, eval_module_idx += 1)
|
||||
{
|
||||
DF_Entity *module = n->entity;
|
||||
DI_Key dbgi_key = df_dbgi_key_from_module(module);
|
||||
DF_Entity *m = n->entity;
|
||||
DI_Key dbgi_key = df_dbgi_key_from_module(m);
|
||||
eval_modules[eval_module_idx].rdi = di_rdi_from_key(df_state->frame_di_scope, &dbgi_key, 0);
|
||||
eval_modules[eval_module_idx].vaddr_range = module->vaddr_rng;
|
||||
eval_modules[eval_module_idx].space = (U64)df_entity_ancestor_from_kind(module, DF_EntityKind_Process);
|
||||
if(contains_1u64(module->vaddr_rng, rip_voff))
|
||||
eval_modules[eval_module_idx].vaddr_range = m->vaddr_rng;
|
||||
eval_modules[eval_module_idx].space = (U64)df_entity_ancestor_from_kind(m, DF_EntityKind_Process);
|
||||
if(module == m)
|
||||
{
|
||||
eval_modules_primary = &eval_modules[eval_module_idx];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user