mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-16 00:52:23 -07:00
further raddbgi -> rdi naming pass
This commit is contained in:
+40
-40
@@ -204,7 +204,7 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
DBGI_Scope *scope = dbgi_scope_open();
|
||||
String8 exe_path = demon_full_path_from_module(scratch.arena, module);
|
||||
DBGI_Parse *dbgi = dbgi_parse_from_exe_path(scope, exe_path, max_U64);
|
||||
RDI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RDI_Parsed *rdi = &dbgi->rdi;
|
||||
U64 base_vaddr = demon_base_vaddr_from_module(module);
|
||||
for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next)
|
||||
{
|
||||
@@ -229,16 +229,16 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
// rjf: filename -> src_id
|
||||
U32 src_id = 0;
|
||||
{
|
||||
RDI_NameMap *mapptr = rdi_name_map_from_kind(rdbg, RDI_NameMapKind_NormalSourcePaths);
|
||||
RDI_NameMap *mapptr = rdi_name_map_from_kind(rdi, RDI_NameMapKind_NormalSourcePaths);
|
||||
if(mapptr != 0)
|
||||
{
|
||||
RDI_ParsedNameMap map = {0};
|
||||
rdi_name_map_parse(rdbg, mapptr, &map);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, filename_normalized.str, filename_normalized.size);
|
||||
rdi_name_map_parse(rdi, mapptr, &map);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, filename_normalized.str, filename_normalized.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
src_id = ids[0];
|
||||
@@ -249,9 +249,9 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
|
||||
// rjf: src_id * pt -> push
|
||||
{
|
||||
RDI_SourceFile *src = rdi_element_from_idx(rdbg, source_files, src_id);
|
||||
RDI_SourceFile *src = rdi_element_from_idx(rdi, source_files, src_id);
|
||||
RDI_ParsedLineMap line_map = {0};
|
||||
rdi_line_map_from_source_file(rdbg, src, &line_map);
|
||||
rdi_line_map_from_source_file(rdi, src, &line_map);
|
||||
U32 voff_count = 0;
|
||||
U64 *voffs = rdi_line_voffs_from_num(&line_map, pt.line, &voff_count);
|
||||
for(U32 i = 0; i < voff_count; i += 1)
|
||||
@@ -268,21 +268,21 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
{
|
||||
String8 symbol_name = bp->string;
|
||||
U64 voff = bp->u64;
|
||||
if(rdbg != 0 && rdbg->procedures != 0)
|
||||
if(rdi != 0 && rdi->procedures != 0)
|
||||
{
|
||||
RDI_NameMap *mapptr = rdi_name_map_from_kind(rdbg, RDI_NameMapKind_Procedures);
|
||||
RDI_NameMap *mapptr = rdi_name_map_from_kind(rdi, RDI_NameMapKind_Procedures);
|
||||
if(mapptr != 0)
|
||||
{
|
||||
RDI_ParsedNameMap map = {0};
|
||||
rdi_name_map_parse(rdbg, mapptr, &map);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, symbol_name.str, symbol_name.size);
|
||||
rdi_name_map_parse(rdi, mapptr, &map);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, symbol_name.str, symbol_name.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
for(U32 match_i = 0; match_i < id_count; match_i += 1)
|
||||
{
|
||||
U64 proc_voff = rdi_first_voff_from_proc(rdbg, ids[match_i]);
|
||||
U64 proc_voff = rdi_first_voff_from_proc(rdi, ids[match_i]);
|
||||
U64 proc_vaddr = proc_voff + base_vaddr;
|
||||
DEMON_Trap trap = {process, proc_vaddr + voff, (U64)bp};
|
||||
demon_trap_chunk_list_push(arena, traps_out, 256, &trap);
|
||||
@@ -1643,21 +1643,21 @@ ctrl_thread__next_demon_event(Arena *arena, CTRL_Msg *msg, DEMON_RunCtrls *run_c
|
||||
CTRL_Handle module = ctrl_handle_from_demon(modules.handles[0]);
|
||||
String8 module_path = demon_full_path_from_module(scratch.arena, ctrl_demon_handle_from_ctrl(module));
|
||||
DBGI_Parse *dbgi = dbgi_parse_from_exe_path(scope, module_path, max_U64);
|
||||
RDI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RDI_NameMap *unparsed_map = rdi_name_map_from_kind(rdbg, RDI_NameMapKind_GlobalVariables);
|
||||
if(rdbg->global_variables != 0 && unparsed_map != 0)
|
||||
RDI_Parsed *rdi = &dbgi->rdi;
|
||||
RDI_NameMap *unparsed_map = rdi_name_map_from_kind(rdi, RDI_NameMapKind_GlobalVariables);
|
||||
if(rdi->global_variables != 0 && unparsed_map != 0)
|
||||
{
|
||||
RDI_ParsedNameMap map = {0};
|
||||
rdi_name_map_parse(rdbg, unparsed_map, &map);
|
||||
rdi_name_map_parse(rdi, unparsed_map, &map);
|
||||
String8 name = str8_lit("__asan_shadow_memory_dynamic_address");
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
RDI_GlobalVariable *global_var = rdi_element_from_idx(rdbg, global_variables, ids[0]);
|
||||
RDI_GlobalVariable *global_var = rdi_element_from_idx(rdi, global_variables, ids[0]);
|
||||
U64 global_var_voff = global_var->voff;
|
||||
U64 global_var_vaddr = global_var->voff + demon_base_vaddr_from_module(ctrl_demon_handle_from_ctrl(module));
|
||||
Architecture arch = demon_arch_from_object(ev->thread);
|
||||
@@ -2148,10 +2148,10 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U64 module_base_vaddr = demon_base_vaddr_from_module(module);
|
||||
String8 exe_path = demon_full_path_from_module(scratch.arena, module);
|
||||
DBGI_Parse *dbgi = dbgi_parse_from_exe_path(scope, exe_path, max_U64);
|
||||
RDI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RDI_NameMap *unparsed_map = rdi_name_map_from_kind(rdbg, RDI_NameMapKind_Procedures);
|
||||
RDI_Parsed *rdi = &dbgi->rdi;
|
||||
RDI_NameMap *unparsed_map = rdi_name_map_from_kind(rdi, RDI_NameMapKind_Procedures);
|
||||
RDI_ParsedNameMap map = {0};
|
||||
rdi_name_map_parse(rdbg, unparsed_map, &map);
|
||||
rdi_name_map_parse(rdi, unparsed_map, &map);
|
||||
|
||||
//- rjf: add trap for user-specified entry point, if specified
|
||||
B32 entries_found = 0;
|
||||
@@ -2162,15 +2162,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = n->string;
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = rdi_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = rdi_first_voff_from_proc(rdi, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2188,15 +2188,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = n->string;
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = rdi_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = rdi_first_voff_from_proc(rdi, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
DEMON_Trap trap = {run_ctrls.run_entities[process_idx], module_base_vaddr + voff};
|
||||
@@ -2221,15 +2221,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = hi_entry_points[idx];
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = rdi_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = rdi_first_voff_from_proc(rdi, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2265,15 +2265,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = lo_entry_points[idx];
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = rdi_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = rdi_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = rdi_first_voff_from_proc(rdi, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2871,7 +2871,7 @@ ctrl_thread__run(CTRL_Msg *msg)
|
||||
{
|
||||
String8 exe_path = demon_full_path_from_module(temp.arena, module);
|
||||
DBGI_Parse *dbgi = dbgi_parse_from_exe_path(scope, exe_path, max_U64);
|
||||
RDI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RDI_Parsed *rdi = &dbgi->rdi;
|
||||
for(String8Node *condition_n = conditions.first; condition_n != 0; condition_n = condition_n->next)
|
||||
{
|
||||
String8 string = condition_n->string;
|
||||
@@ -2879,12 +2879,12 @@ ctrl_thread__run(CTRL_Msg *msg)
|
||||
{
|
||||
parse_ctx.arch = arch;
|
||||
parse_ctx.ip_voff = thread_rip_voff;
|
||||
parse_ctx.rdbg = rdbg;
|
||||
parse_ctx.rdi = rdi;
|
||||
parse_ctx.type_graph = tg_graph_begin(bit_size_from_arch(arch)/8, 256);
|
||||
parse_ctx.regs_map = ctrl_string2reg_from_arch(arch);
|
||||
parse_ctx.reg_alias_map = ctrl_string2alias_from_arch(arch);
|
||||
parse_ctx.locals_map = eval_push_locals_map_from_rdi_voff(temp.arena, rdbg, thread_rip_voff);
|
||||
parse_ctx.member_map = eval_push_member_map_from_rdi_voff(temp.arena, rdbg, thread_rip_voff);
|
||||
parse_ctx.locals_map = eval_push_locals_map_from_rdi_voff(temp.arena, rdi, thread_rip_voff);
|
||||
parse_ctx.member_map = eval_push_member_map_from_rdi_voff(temp.arena, rdi, thread_rip_voff);
|
||||
}
|
||||
EVAL_TokenArray tokens = eval_token_array_from_text(temp.arena, string);
|
||||
EVAL_ParseResult parse = eval_parse_expr_from_text_tokens(temp.arena, &parse_ctx, string, &tokens);
|
||||
@@ -2894,7 +2894,7 @@ ctrl_thread__run(CTRL_Msg *msg)
|
||||
EVAL_IRTreeAndType ir_tree_and_type = {&eval_irtree_nil};
|
||||
if(parse_has_expr && errors.count == 0)
|
||||
{
|
||||
ir_tree_and_type = eval_irtree_and_type_from_expr(temp.arena, parse_ctx.type_graph, rdbg, &eval_string2expr_map_nil, parse.expr, &errors);
|
||||
ir_tree_and_type = eval_irtree_and_type_from_expr(temp.arena, parse_ctx.type_graph, rdi, &eval_string2expr_map_nil, parse.expr, &errors);
|
||||
}
|
||||
EVAL_OpList op_list = {0};
|
||||
if(parse_has_expr && ir_tree_and_type.tree != &eval_irtree_nil)
|
||||
|
||||
Reference in New Issue
Block a user