mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
non-scope, non-type namespace gathering / gathering from pdb & baking & dumping
This commit is contained in:
@@ -896,6 +896,8 @@ X(Set)\
|
||||
#define RDI_Namespace_XList \
|
||||
X(RDI_U32, name_string_idx)\
|
||||
X(RDI_ContainerFlags, container_flags)\
|
||||
X(RDI_U8, padding_0)\
|
||||
X(RDI_U16, padding_1)\
|
||||
X(RDI_U32, container_idx)\
|
||||
|
||||
#define RDI_Symbol_XList \
|
||||
@@ -1347,6 +1349,8 @@ struct RDI_Namespace
|
||||
{
|
||||
RDI_U32 name_string_idx;
|
||||
RDI_ContainerFlags container_flags;
|
||||
RDI_U8 padding_0;
|
||||
RDI_U16 padding_1;
|
||||
RDI_U32 container_idx;
|
||||
};
|
||||
|
||||
|
||||
@@ -1194,6 +1194,7 @@ rdim_bake_params_concat_in_place(RDIM_BakeParams *dst, RDIM_BakeParams *src)
|
||||
rdim_udt_chunk_list_concat_in_place(&dst->udts, &src->udts);
|
||||
rdim_src_file_chunk_list_concat_in_place(&dst->src_files, &src->src_files);
|
||||
rdim_line_table_chunk_list_concat_in_place(&dst->line_tables, &src->line_tables);
|
||||
rdim_namespace_chunk_list_concat_in_place(&dst->namespaces, &src->namespaces);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 ""}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
//
|
||||
|
||||
@@ -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
|
||||
|
||||
+1212
-931
File diff suppressed because it is too large
Load Diff
@@ -2584,6 +2584,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params)
|
||||
}
|
||||
}
|
||||
}
|
||||
lane_sync();
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
//- rjf: @rdim_bake_stage compute lane UDT member/enum-val layouts
|
||||
|
||||
Reference in New Issue
Block a user