char *pstr_space,
Byte b_level )
{
- //Debug_ObjectInfo_Print_SymbolCommon( p_obj, pstr_space, b_level );
+ DWord dw_size;
+ DWord dw_cnt;
printf(" %s\t\t[OBJINFO] Addr.Link(%3d <-> %3d) .debug_info=%8ph\n",
pstr_space, p_obj->addrlink.i_prev_id, p_obj->addrlink.i_next_id,
p_obj->dwarf.pb_info );
-/*
- printf(" %s\t\t[TYPE(Single)] size= %u, encoding= %xh, BitOffset=%d, BitSize=%d, Endianity=%x\n",
- pstr_space, p_obj->info.type.dw_size, p_obj->info.type.b_encoding,
- p_obj->info.type.b_bit_offset, p_obj->info.type.b_bit_size,
- p_obj->info.type.b_endianity );
-*/
+ if( NO_OBJ == p_obj->info.function.i_objid_master ) {
+ printf(" %s\t\t[FUNCTION] Master (%s:%s:%s:%s) Convention= %d\n",
+ pstr_space,
+ ((0 != p_obj->info.function.flag.inline_def) ? "inline def." : " - "),
+ ((0 != p_obj->info.function.flag.inlined) ? " inlined " : " - "),
+ ((0 != p_obj->info.function.flag.external) ? " external " : " - "),
+ ((0 != p_obj->info.function.flag.prototyped) ? "prototyped " : " - "),
+ p_obj->info.function.b_convention );
+ }
+ else {
+ printf(" %s\t\t[FUNCTION] Slave(%2d) (%s:%s:%s:%s) Convention= %d\\n",
+ pstr_space, p_obj->info.function.i_objid_master,
+ ((0 != p_obj->info.function.flag.inline_def) ? "inline def." : " - "),
+ ((0 != p_obj->info.function.flag.inlined) ? " inlined " : " - "),
+ ((0 != p_obj->info.function.flag.external) ? " external " : " - "),
+ ((0 != p_obj->info.function.flag.prototyped) ? "prototyped " : " - "),
+ p_obj->info.function.b_convention );
+ }
+
+ dw_size = ((16 < p_obj->info.function.dw_sz_frame_base)
+ ? 16 : p_obj->info.function.dw_sz_frame_base);
+ if( 0 < dw_size ) {
+ printf(" %s\t\t[FUNCTION] FrameBase (%2lu): ",
+ pstr_space, p_obj->info.function.dw_sz_frame_base );
+
+ for( dw_cnt = 0; dw_cnt < dw_size; dw_cnt++ )
+ { printf( "%02xh ", *(p_obj->info.function.pb_frame_base + dw_cnt) ); }
+ puts("");
+ }
+
+ dw_size = ((16 < p_obj->info.function.dw_sz_return_addr)
+ ? 16 : p_obj->info.function.dw_sz_return_addr);
+ if( 0 < dw_size ) {
+ printf(" %s\t\t[FUNCTION] ReturnAddr. (%2lu): ",
+ pstr_space, p_obj->info.function.dw_sz_return_addr );
+
+ for( dw_cnt = 0; dw_cnt < dw_size; dw_cnt++ )
+ { printf( "%02xh ", *(p_obj->info.function.pb_return_addr + dw_cnt) ); }
+ puts("");
+ }
+
+ dw_size = ((16 < p_obj->info.function.dw_sz_static_link)
+ ? 16 : p_obj->info.function.dw_sz_static_link);
+ if( 0 < dw_size ) {
+ printf(" %s\t\t[FUNCTION] StaticLink (%2lu): ",
+ pstr_space, p_obj->info.function.dw_sz_static_link );
+
+ for( dw_cnt = 0; dw_cnt < dw_size; dw_cnt++ )
+ { printf( "%02xh ", *(p_obj->info.function.pb_static_link + dw_cnt) ); }
+ puts("");
+ }
+
printf(" %s\t\t[FUNCTION] ReturnType: Link Addr= %8ph -> ObjID= %d\n",
pstr_space, p_obj->dwarf.pb_dwinfo_type, p_obj->dwarf.i_objid_type );
return;