first pass over mixed-mode disassembly

This commit is contained in:
Ryan Fleury
2024-04-23 13:52:44 -07:00
parent 5b87c2b64a
commit 425626a275
3 changed files with 89 additions and 12 deletions
+8 -4
View File
@@ -6061,6 +6061,8 @@ DF_VIEW_CMD_FUNCTION_DEF(Disassembly)
DF_Entity *process = df_entity_from_handle(dv->process);
Architecture arch = df_architecture_from_entity(process);
U64 dasm_base_vaddr = AlignDownPow2(dv->base_vaddr, KB(64));
DF_Entity *dasm_module = df_module_from_process_vaddr(process, dasm_base_vaddr);
DF_Entity *dasm_binary = df_binary_file_from_module(dasm_module);
Rng1U64 dasm_vaddr_range = r1u64(dasm_base_vaddr, dasm_base_vaddr+KB(64));
U128 dasm_key = ctrl_hash_store_key_from_process_vaddr_range(process->ctrl_machine_id, process->ctrl_handle, dasm_vaddr_range, 0);
U128 dasm_data_hash = {0};
@@ -6070,8 +6072,8 @@ DF_VIEW_CMD_FUNCTION_DEF(Disassembly)
dasm_params.arch = arch;
dasm_params.style_flags = dv->style_flags;
dasm_params.syntax = DASM_Syntax_Intel;
dasm_params.base_vaddr = 0;
dasm_params.exe_path = str8_zero();
dasm_params.base_vaddr = dasm_module->vaddr_rng.min;
dasm_params.exe_path = df_full_path_from_entity(scratch.arena, dasm_binary);
}
DASM_Info dasm_info = dasm_info_from_key_params(dasm_scope, dasm_key, &dasm_params, &dasm_data_hash);
U128 dasm_text_hash = {0};
@@ -6313,6 +6315,8 @@ DF_VIEW_UI_FUNCTION_DEF(Disassembly)
DF_Entity *process = df_entity_from_handle(dv->process);
Architecture arch = df_architecture_from_entity(process);
U64 dasm_base_vaddr = AlignDownPow2(dv->base_vaddr, KB(64));
DF_Entity *dasm_module = df_module_from_process_vaddr(process, dasm_base_vaddr);
DF_Entity *dasm_binary = df_binary_file_from_module(dasm_module);
Rng1U64 dasm_vaddr_range = r1u64(dasm_base_vaddr, dasm_base_vaddr+KB(64));
U128 dasm_key = ctrl_hash_store_key_from_process_vaddr_range(process->ctrl_machine_id, process->ctrl_handle, dasm_vaddr_range, 0);
U128 dasm_data_hash = {0};
@@ -6322,8 +6326,8 @@ DF_VIEW_UI_FUNCTION_DEF(Disassembly)
dasm_params.arch = arch;
dasm_params.style_flags = dv->style_flags;
dasm_params.syntax = DASM_Syntax_Intel;
dasm_params.base_vaddr = 0;
dasm_params.exe_path = str8_zero();
dasm_params.base_vaddr = dasm_module->vaddr_rng.min;
dasm_params.exe_path = df_full_path_from_entity(scratch.arena, dasm_binary);
}
DASM_Info dasm_info = dasm_info_from_key_params(dasm_scope, dasm_key, &dasm_params, &dasm_data_hash);
U128 dasm_text_hash = {0};