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 \
|
#define RDI_Namespace_XList \
|
||||||
X(RDI_U32, name_string_idx)\
|
X(RDI_U32, name_string_idx)\
|
||||||
X(RDI_ContainerFlags, container_flags)\
|
X(RDI_ContainerFlags, container_flags)\
|
||||||
|
X(RDI_U8, padding_0)\
|
||||||
|
X(RDI_U16, padding_1)\
|
||||||
X(RDI_U32, container_idx)\
|
X(RDI_U32, container_idx)\
|
||||||
|
|
||||||
#define RDI_Symbol_XList \
|
#define RDI_Symbol_XList \
|
||||||
@@ -1347,6 +1349,8 @@ struct RDI_Namespace
|
|||||||
{
|
{
|
||||||
RDI_U32 name_string_idx;
|
RDI_U32 name_string_idx;
|
||||||
RDI_ContainerFlags container_flags;
|
RDI_ContainerFlags container_flags;
|
||||||
|
RDI_U8 padding_0;
|
||||||
|
RDI_U16 padding_1;
|
||||||
RDI_U32 container_idx;
|
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_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_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_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 ""}
|
{name_string_idx RDI_U32 ""}
|
||||||
{container_flags RDI_ContainerFlags ""}
|
{container_flags RDI_ContainerFlags ""}
|
||||||
|
{padding_0 RDI_U8 ""}
|
||||||
|
{padding_1 RDI_U16 ""}
|
||||||
{container_idx RDI_U32 ""}
|
{container_idx RDI_U32 ""}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1236,6 +1236,39 @@ lane_sync(); if(flags & (1ull<<(kind))) ProfScope(rdi_name_title_from_dump_subse
|
|||||||
scratch_end(scratch);
|
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
|
//- rjf: dump strings
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ X(Scopes, scopes, "SCOPES")\
|
|||||||
X(ScopeVMap, scope_vmap, "SCOPE VMAP")\
|
X(ScopeVMap, scope_vmap, "SCOPE VMAP")\
|
||||||
X(InlineSites, inline_sites, "INLINE SITES")\
|
X(InlineSites, inline_sites, "INLINE SITES")\
|
||||||
X(NameMaps, name_maps, "NAME MAPS")\
|
X(NameMaps, name_maps, "NAME MAPS")\
|
||||||
|
X(Namespaces, namespaces, "NAMESPACES")\
|
||||||
X(Strings, strings, "STRINGS")\
|
X(Strings, strings, "STRINGS")\
|
||||||
|
|
||||||
typedef enum RDI_DumpSubset
|
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
|
//- rjf: @rdim_bake_stage compute lane UDT member/enum-val layouts
|
||||||
|
|||||||
Reference in New Issue
Block a user