DWARF_Info_Read(
LibGoblin_BinaryInfo *p_binfo )
{
+ int i_childlv;
int i_result;
int i_srcfiles;
int i_abbrevs;
&p_abbrev, &i_abbrevs,
p_binfo, p_bfile, t_cuheader.qw_abbrev_offset );
+ i_childlv = 0;
do {
// Read Reference Abbrev-ID ---
pb_info = DWARF_Common_DecodeULEB128( &qw_temp, pb_info, &qw_size_cu );
dw_arvid = (DWord)qw_temp;
- //assert( 0 < dw_arvid );
+
+ if( 0 == dw_arvid ) {
+ i_childlv--;
+ continue;
+ }
+
p_arvnow = p_abbrev + (dw_arvid - 1);
printf(" [AbbrevID = %d] TAG=%02xh\n", dw_arvid, p_arvnow->dw_tag );
p_val, pb_info, &qw_size_cu, dw_format, p_binfo, &t_cuheader );
}
+ if( 0x00 != p_arvnow->b_children ) { i_childlv++; }
+
// Dispatch for generate Rapid-Access Table by DIE-tag
}while( 0 != qw_size_cu );