void FiniDebugLine( dw_client cli ) { char buf[ sizeof( uint_32 ) ]; long size; buf[ 0 ] = 0; buf[ 1 ] = 1; buf[ 2 ] = DW_LNE_end_sequence; CLIWrite( DW_DEBUG_LINE, buf, 3 ); size = CLITell( DW_DEBUG_LINE ) - sizeof( uint_32 ) - cli->section_base[ DW_DEBUG_LINE ]; WriteU32( buf, size ); CLISeek( DW_DEBUG_LINE, cli->section_base[ DW_DEBUG_LINE ], DW_SEEK_SET ); CLIWrite( DW_DEBUG_LINE, buf, sizeof(uint_32) ); CLISeek( DW_DEBUG_LINE, 0, DW_SEEK_END ); FreeChain( cli, cli->debug_line.files ); }
void CLIRewind( void ) { /***********************/ int x = 0; for( x = 0; x < DW_DEBUG_MAX; x++ ) { CLISeek( x, 0, DW_SEEK_SET ); } }
void FiniDebugPubnames( dw_client cli ) { static char const zeros[ sizeof( uint_32 ) ]; char buf[ sizeof( debug_ref ) ]; debug_ref offset; /* write the set terminator */ CLIWrite( DW_DEBUG_PUBNAMES, zeros, sizeof( uint_32 ) ); /* backpatch the section length */ offset = CLITell( DW_DEBUG_PUBNAMES ) - cli->section_base[ DW_DEBUG_PUBNAMES ] - sizeof( debug_ref ); WriteRef( buf, offset ); CLISeek( DW_DEBUG_PUBNAMES, cli->section_base[ DW_DEBUG_PUBNAMES ], DW_SEEK_SET ); CLIWrite( DW_DEBUG_PUBNAMES, buf, sizeof( debug_ref ) ); CLISeek( DW_DEBUG_PUBNAMES, 0, DW_SEEK_END ); }
debug_ref InfoSkip( dw_client cli, dw_size_t amt ) { debug_ref ret; ret = CLITell( DW_DEBUG_INFO ) - cli->section_base[ DW_DEBUG_INFO ]; CLISeek( DW_DEBUG_INFO, amt, DW_SEEK_CUR ); return( ret ); }
void InitDebugPubnames( dw_client cli ) { static uint_16 const version = 2; /* write the set header */ CLISeek( DW_DEBUG_PUBNAMES, sizeof( uint_32 ), DW_SEEK_CUR ); CLIWrite( DW_DEBUG_PUBNAMES, &version, sizeof( version ) ); CLIReloc3( DW_DEBUG_PUBNAMES, DW_W_SECTION_POS, DW_DEBUG_INFO ); CLIReloc2( DW_DEBUG_PUBNAMES, DW_W_UNIT_SIZE ); }