mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-14 04:49:41 -07:00
checkpoint on eval2 compiler; setting to disable update checking; cache version check to once per day so that we do not send a lot of extra GH requests every time the debugger starts
This commit is contained in:
1 parent
bcdc6acd0e
commit
00da627293
11 files changed
+530
-391
No files matched your search
+13
-51
@@ -12,19 +12,17 @@
|
||||
|
||||
//- rjf: [h]
|
||||
#include "base/base_inc.h"
|
||||
#include "content/content.h"
|
||||
#include "artifact_cache/artifact_cache.h"
|
||||
#include "file_stream/file_stream.h"
|
||||
#include "x64/x64.h"
|
||||
#include "rdi/rdi_local.h"
|
||||
#include "dbg_info/dbg_info.h"
|
||||
#include "arch/arch_inc.h"
|
||||
#include "eval2/eval2.h"
|
||||
|
||||
//- rjf: [c]
|
||||
#include "base/base_inc.c"
|
||||
#include "content/content.c"
|
||||
#include "artifact_cache/artifact_cache.c"
|
||||
#include "file_stream/file_stream.c"
|
||||
#include "x64/x64.c"
|
||||
#include "rdi/rdi_local.c"
|
||||
#include "dbg_info/dbg_info.c"
|
||||
#include "arch/arch_inc.c"
|
||||
#include "eval2/eval2.c"
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Entry Point
|
||||
@@ -32,53 +30,17 @@
|
||||
internal void
|
||||
entry_point(CmdLine *cmdline)
|
||||
{
|
||||
local_persist char *pdb_paths[] =
|
||||
{
|
||||
"C:/devel/raddebugger/build/raddbg.pdb",
|
||||
// #include "fn_debug_infos.inc"
|
||||
};
|
||||
|
||||
DI_Key keys[ArrayCount(pdb_paths)] = {0};
|
||||
for EachElement(idx, pdb_paths)
|
||||
{
|
||||
String8 path = str8_cstring(pdb_paths[idx]);
|
||||
keys[idx] = di_key_from_path_timestamp(path, 0);
|
||||
di_open(keys[idx]);
|
||||
}
|
||||
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
E2_ParseState state = {0};
|
||||
E2_SpaceMap space_map = {0};
|
||||
E2_ExprMap expr_map = {0};
|
||||
for(;;)
|
||||
{
|
||||
Access *access = access_open();
|
||||
B32 got_all_rdis = 1;
|
||||
U64 num_rdis_loaded = 0;
|
||||
for EachElement(idx, pdb_paths)
|
||||
E2_Parse parse = e2_parse_from_string(scratch.arena, &state, &space_map, &expr_map, s("!123"));
|
||||
if(parse.status == E2_Status_Good)
|
||||
{
|
||||
RDI_Parsed *rdi = di_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), di_shared->conversion_thread_count, di_shared->conversion_process_count);
|
||||
access_close(access);
|
||||
if(got_all_rdis)
|
||||
{
|
||||
Access *access = access_open();
|
||||
String8 search_query = str8_lit("rd_");
|
||||
DI_SearchItemArray items = di_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");
|
||||
DI_Match match = di_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;
|
||||
}
|
||||
}
|
||||
scratch_end(scratch);
|
||||
}
|
||||
Reference in new issue
Block a user