mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 21:38:40 +00:00
testing / debugging
This commit is contained in:
@@ -1347,6 +1347,7 @@ di2_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out)
|
|||||||
}
|
}
|
||||||
|
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
|
return artifact;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal DI2_Match
|
internal DI2_Match
|
||||||
|
|||||||
@@ -34,16 +34,53 @@
|
|||||||
internal void
|
internal void
|
||||||
entry_point(CmdLine *cmdline)
|
entry_point(CmdLine *cmdline)
|
||||||
{
|
{
|
||||||
DI2_Key key = di2_key_from_path_timestamp(str8_lit("C:/devel/raddebugger/build/raddbg.pdb"), 0);
|
local_persist char *pdb_paths[] =
|
||||||
di2_open(key);
|
{
|
||||||
|
"C:/devel/raddebugger/build/raddbg.pdb",
|
||||||
|
// #include "fn_debug_infos.inc"
|
||||||
|
};
|
||||||
|
|
||||||
|
DI2_Key keys[ArrayCount(pdb_paths)] = {0};
|
||||||
|
for EachElement(idx, pdb_paths)
|
||||||
|
{
|
||||||
|
String8 path = str8_cstring(pdb_paths[idx]);
|
||||||
|
keys[idx] = di2_key_from_path_timestamp(path, 0);
|
||||||
|
di2_open(keys[idx]);
|
||||||
|
}
|
||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
Access *access = access_open();
|
Access *access = access_open();
|
||||||
RDI_Parsed *rdi = di2_rdi_from_key(access, key, 1, 0);
|
B32 got_all_rdis = 1;
|
||||||
if(rdi != &rdi_parsed_nil)
|
U64 num_rdis_loaded = 0;
|
||||||
|
for EachElement(idx, pdb_paths)
|
||||||
{
|
{
|
||||||
int x = 0;
|
RDI_Parsed *rdi = di2_rdi_from_key(access, keys[idx], 1, 0);
|
||||||
|
if(rdi == &rdi_parsed_nil)
|
||||||
|
{
|
||||||
|
got_all_rdis = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
num_rdis_loaded += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
printf("\rloaded [%I64u/%I64u], %I64u active threads, %I64u active processes", num_rdis_loaded, ArrayCount(pdb_paths), di2_shared->conversion_thread_count, di2_shared->conversion_process_count);
|
||||||
access_close(access);
|
access_close(access);
|
||||||
|
if(got_all_rdis)
|
||||||
|
{
|
||||||
|
Access *access = access_open();
|
||||||
|
String8 search_query = str8_lit("rd_");
|
||||||
|
DI2_SearchItemArray items = di2_search_item_array_from_target_query(access, RDI_SectionKind_Procedures, search_query, max_U64);
|
||||||
|
printf("\n");
|
||||||
|
printf("fuzzy searched for %.*s, found %I64u items\n", str8_varg(search_query), items.count);
|
||||||
|
access_close(access);
|
||||||
|
|
||||||
|
String8 match_query = str8_lit("rd_frame");
|
||||||
|
DI2_Match match = di2_match_from_string(match_query, 0, max_U64);
|
||||||
|
printf("searched for %.*s, found at %i in [%I64x:%I64x]\n", str8_varg(match_query), match.idx, match.key.u64[0], match.key.u64[1]);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user