mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-14 16:12:24 -07:00
raddbg -> raddbgi
This commit is contained in:
+42
-42
@@ -199,7 +199,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);
|
||||
RADDBG_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBGI_Parsed *rdbg = &dbgi->rdbg;
|
||||
U64 base_vaddr = demon_base_vaddr_from_module(module);
|
||||
for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next)
|
||||
{
|
||||
@@ -224,16 +224,16 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
// rjf: filename -> src_id
|
||||
U32 src_id = 0;
|
||||
{
|
||||
RADDBG_NameMap *mapptr = raddbg_name_map_from_kind(rdbg, RADDBG_NameMapKind_NormalSourcePaths);
|
||||
RADDBGI_NameMap *mapptr = raddbgi_name_map_from_kind(rdbg, RADDBGI_NameMapKind_NormalSourcePaths);
|
||||
if(mapptr != 0)
|
||||
{
|
||||
RADDBG_ParsedNameMap map = {0};
|
||||
raddbg_name_map_parse(rdbg, mapptr, &map);
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, filename_normalized.str, filename_normalized.size);
|
||||
RADDBGI_ParsedNameMap map = {0};
|
||||
raddbgi_name_map_parse(rdbg, mapptr, &map);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, filename_normalized.str, filename_normalized.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
src_id = ids[0];
|
||||
@@ -244,11 +244,11 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
|
||||
// rjf: src_id * pt -> push
|
||||
{
|
||||
RADDBG_SourceFile *src = raddbg_element_from_idx(rdbg, source_files, src_id);
|
||||
RADDBG_ParsedLineMap line_map = {0};
|
||||
raddbg_line_map_from_source_file(rdbg, src, &line_map);
|
||||
RADDBGI_SourceFile *src = raddbgi_element_from_idx(rdbg, source_files, src_id);
|
||||
RADDBGI_ParsedLineMap line_map = {0};
|
||||
raddbgi_line_map_from_source_file(rdbg, src, &line_map);
|
||||
U32 voff_count = 0;
|
||||
U64 *voffs = raddbg_line_voffs_from_num(&line_map, pt.line, &voff_count);
|
||||
U64 *voffs = raddbgi_line_voffs_from_num(&line_map, pt.line, &voff_count);
|
||||
for(U32 i = 0; i < voff_count; i += 1)
|
||||
{
|
||||
U64 vaddr = voffs[i] + base_vaddr;
|
||||
@@ -265,19 +265,19 @@ ctrl_append_resolved_module_user_bp_traps(Arena *arena, DEMON_Handle process, DE
|
||||
U64 voff = bp->u64;
|
||||
if(rdbg != 0 && rdbg->procedures != 0)
|
||||
{
|
||||
RADDBG_NameMap *mapptr = raddbg_name_map_from_kind(rdbg, RADDBG_NameMapKind_Procedures);
|
||||
RADDBGI_NameMap *mapptr = raddbgi_name_map_from_kind(rdbg, RADDBGI_NameMapKind_Procedures);
|
||||
if(mapptr != 0)
|
||||
{
|
||||
RADDBG_ParsedNameMap map = {0};
|
||||
raddbg_name_map_parse(rdbg, mapptr, &map);
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, symbol_name.str, symbol_name.size);
|
||||
RADDBGI_ParsedNameMap map = {0};
|
||||
raddbgi_name_map_parse(rdbg, mapptr, &map);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, symbol_name.str, symbol_name.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
for(U32 match_i = 0; match_i < id_count; match_i += 1)
|
||||
{
|
||||
U64 proc_voff = raddbg_first_voff_from_proc(rdbg, ids[match_i]);
|
||||
U64 proc_voff = raddbgi_first_voff_from_proc(rdbg, 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);
|
||||
@@ -1638,21 +1638,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);
|
||||
RADDBG_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBG_NameMap *unparsed_map = raddbg_name_map_from_kind(rdbg, RADDBG_NameMapKind_GlobalVariables);
|
||||
RADDBGI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBGI_NameMap *unparsed_map = raddbgi_name_map_from_kind(rdbg, RADDBGI_NameMapKind_GlobalVariables);
|
||||
if(rdbg->global_variables != 0 && unparsed_map != 0)
|
||||
{
|
||||
RADDBG_ParsedNameMap map = {0};
|
||||
raddbg_name_map_parse(rdbg, unparsed_map, &map);
|
||||
RADDBGI_ParsedNameMap map = {0};
|
||||
raddbgi_name_map_parse(rdbg, unparsed_map, &map);
|
||||
String8 name = str8_lit("__asan_shadow_memory_dynamic_address");
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
if(node != 0)
|
||||
{
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
RADDBG_GlobalVariable *global_var = raddbg_element_from_idx(rdbg, global_variables, ids[0]);
|
||||
RADDBGI_GlobalVariable *global_var = raddbgi_element_from_idx(rdbg, 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);
|
||||
@@ -2143,10 +2143,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);
|
||||
RADDBG_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBG_NameMap *unparsed_map = raddbg_name_map_from_kind(rdbg, RADDBG_NameMapKind_Procedures);
|
||||
RADDBG_ParsedNameMap map = {0};
|
||||
raddbg_name_map_parse(rdbg, unparsed_map, &map);
|
||||
RADDBGI_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBGI_NameMap *unparsed_map = raddbgi_name_map_from_kind(rdbg, RADDBGI_NameMapKind_Procedures);
|
||||
RADDBGI_ParsedNameMap map = {0};
|
||||
raddbgi_name_map_parse(rdbg, unparsed_map, &map);
|
||||
|
||||
//- rjf: add trap for user-specified entry point, if specified
|
||||
B32 entries_found = 0;
|
||||
@@ -2157,15 +2157,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = n->string;
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = raddbg_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = raddbgi_first_voff_from_proc(rdbg, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2183,15 +2183,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = n->string;
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = raddbg_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = raddbgi_first_voff_from_proc(rdbg, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
DEMON_Trap trap = {run_ctrls.run_entities[process_idx], module_base_vaddr + voff};
|
||||
@@ -2216,15 +2216,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = hi_entry_points[idx];
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = raddbg_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = raddbgi_first_voff_from_proc(rdbg, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2260,15 +2260,15 @@ ctrl_thread__launch_and_init(CTRL_Msg *msg)
|
||||
U32 procedure_id = 0;
|
||||
{
|
||||
String8 name = lo_entry_points[idx];
|
||||
RADDBG_NameMapNode *node = raddbg_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
RADDBGI_NameMapNode *node = raddbgi_name_map_lookup(rdbg, &map, name.str, name.size);
|
||||
U32 id_count = 0;
|
||||
U32 *ids = raddbg_matches_from_map_node(rdbg, node, &id_count);
|
||||
U32 *ids = raddbgi_matches_from_map_node(rdbg, node, &id_count);
|
||||
if(id_count > 0)
|
||||
{
|
||||
procedure_id = ids[0];
|
||||
}
|
||||
}
|
||||
U64 voff = raddbg_first_voff_from_proc(rdbg, procedure_id);
|
||||
U64 voff = raddbgi_first_voff_from_proc(rdbg, procedure_id);
|
||||
if(voff != 0)
|
||||
{
|
||||
entries_found = 1;
|
||||
@@ -2866,7 +2866,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);
|
||||
RADDBG_Parsed *rdbg = &dbgi->rdbg;
|
||||
RADDBGI_Parsed *rdbg = &dbgi->rdbg;
|
||||
for(String8Node *condition_n = conditions.first; condition_n != 0; condition_n = condition_n->next)
|
||||
{
|
||||
String8 string = condition_n->string;
|
||||
@@ -2878,8 +2878,8 @@ ctrl_thread__run(CTRL_Msg *msg)
|
||||
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_raddbg_voff(temp.arena, rdbg, thread_rip_voff);
|
||||
parse_ctx.member_map = eval_push_member_map_from_raddbg_voff(temp.arena, rdbg, thread_rip_voff);
|
||||
parse_ctx.locals_map = eval_push_locals_map_from_raddbgi_voff(temp.arena, rdbg, thread_rip_voff);
|
||||
parse_ctx.member_map = eval_push_member_map_from_raddbgi_voff(temp.arena, rdbg, 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);
|
||||
|
||||
Reference in New Issue
Block a user