Пример #1
0
dw_handle DWENTRY DWAddInheritance(
    dw_client                   cli,
    dw_handle                   ancestor_hdl,
    dw_loc_handle               loc,
    uint                        flags )
{
    dw_handle                   new_hdl;
    abbrev_code                 abbrev;

    new_hdl = LabelNewHandle( cli );
    abbrev = AB_INHERITANCE;
    StartDIE( cli, abbrev );
    EmitAccessFlags( cli, flags );
    /* AT_location */
    if( loc ) {
        EmitLocExpr( cli, DW_DEBUG_INFO, sizeof( uint_8), loc );
    }else{
        EmitLocExprNull( cli, DW_DEBUG_INFO, sizeof( uint_8) );
    }
    /* AT_virtual */
    if( flags & DW_FLAG_VIRTUAL ) {
        Info8( cli, DW_VIRTUALITY_virtual );
    } else {
        Info8( cli, DW_VIRTUALITY_none );
    }
    /* AT_type */
    HandleReference( cli, ancestor_hdl, DW_DEBUG_INFO );
    EndDIE( cli );
    return( new_hdl );
}
Пример #2
0
dw_handle DWENTRY DWMemberPointer(
    dw_client                   cli,
    dw_handle                   struct_type,
    dw_loc_handle               loc,
    dw_handle                   base_type,
    const char *                name,
    unsigned                    flags )
{
    abbrev_code                 abbrev;
    dw_handle                   new_hdl;

    new_hdl = LabelNewHandle( cli );
    abbrev = AB_MEMBER_POINTER;
    if( name ) abbrev |= AB_NAME;
    if( flags & DW_PTR_TYPE_MASK ) abbrev |= AB_ADDRESS_CLASS;
    StartDIE( cli, abbrev );
    /* AT_name */
    if( name ) {
        InfoString( cli, name );
    }
    WriteAddressClass( cli, flags );
    /* AT_type */
    EmitTypeRef( cli, base_type );
    /* AT_containing_type */
    HandleReference( cli, struct_type, DW_DEBUG_INFO );
    /* AT_use_location */
    EmitLocExpr( cli, DW_DEBUG_INFO, sizeof( uint_16), loc );
    EndDIE( cli );
    return( new_hdl );
}
Пример #3
0
void DWENTRY DWPubname(
    dw_client                   cli,
    dw_handle                   hdl,
    const char *                name )
{
    HandleReference( cli, hdl, DW_DEBUG_PUBNAMES );
    CLIWrite( DW_DEBUG_PUBNAMES, name, strlen( name ) + 1 );
}
Пример #4
0
void EmitTypeRef(
    dw_client                   cli,
    dw_handle                   hdl )
{
    HandleReference( cli, hdl, DW_DEBUG_INFO );
}