non-scope, non-type namespace gathering / gathering from pdb & baking & dumping

This commit is contained in:
Ryan Fleury
2026-04-20 09:57:34 -07:00
parent 5e81f124dc
commit 03d1575c85
7 changed files with 1254 additions and 931 deletions
+2
View File
@@ -1026,6 +1026,8 @@ RDI_NamespaceMemberTable:
{
{name_string_idx RDI_U32 ""}
{container_flags RDI_ContainerFlags ""}
{padding_0 RDI_U8 ""}
{padding_1 RDI_U16 ""}
{container_idx RDI_U32 ""}
}
+33
View File
@@ -1236,6 +1236,39 @@ lane_sync(); if(flags & (1ull<<(kind))) ProfScope(rdi_name_title_from_dump_subse
scratch_end(scratch);
}
//////////////////////////////
//- rjf: dump namespaces
//
DumpSubset(Namespaces)
{
U64 count = 0;
RDI_Namespace *v = rdi_table_from_name(rdi, Namespaces, &count);
Rng1U64 range = lane_range(count);
for EachInRange(idx, range)
{
RDI_Namespace *ns = &v[idx];
String8 container_kind_name = str8_lit("container_idx");
switch(ns->container_flags & RDI_ContainerFlag_KindMask)
{
default:{}break;
case RDI_ContainerKind_Type:
{
container_kind_name = str8_lit("container_udt_idx");
}break;
case RDI_ContainerKind_Namespace:
{
container_kind_name = str8_lit("container_namespace_idx");
}break;
case RDI_ContainerKind_Scope:
{
container_kind_name = str8_lit("container_scope_idx");
}break;
}
dumpf("\n '%S': {%S: %I64u} // namespaces[%I64u]", str8_from_rdi_string_idx(rdi, ns->name_string_idx), container_kind_name, ns->container_idx, idx);
}
if(lane_idx() == lane_count()-1) { dumpf("\n"); }
}
//////////////////////////////
//- rjf: dump strings
//
+1
View File
@@ -32,6 +32,7 @@ X(Scopes, scopes, "SCOPES")\
X(ScopeVMap, scope_vmap, "SCOPE VMAP")\
X(InlineSites, inline_sites, "INLINE SITES")\
X(NameMaps, name_maps, "NAME MAPS")\
X(Namespaces, namespaces, "NAMESPACES")\
X(Strings, strings, "STRINGS")\
typedef enum RDI_DumpSubset