示例#1
0
void BreakAllModEntries( mod_handle handle )
{
    name_list   list;
    address     addr;
    int         i;
    bool        have_mod_cue;
    sym_info    sinfo;
    DIPHDL( cue, ch );
    DIPHDL( cue, ch_mod );

    NameListInit( &list, WF_CODE );
    NameListAddModules( &list, handle, false, true );
    have_mod_cue = FindFirstCue( handle, ch_mod );
    for( i = 0; i < NameListNumRows( &list ); ++i ) {
        addr = NameListAddr( &list, i );
        SymInfo( NameListHandle( &list, i ), NULL, &sinfo );
        if( !sinfo.is_global && !sinfo.is_public )
            continue;
        if( have_mod_cue && DeAliasAddrCue( handle, addr, ch ) != SR_NONE ) {
            if( CueFileId( ch ) != CueFileId( ch_mod ) ) {
                continue;
            }
        }
        if( FindBreak( addr ) != NULL ) {
            continue;
        }
        AddBreak( addr );
    }
    NameListFree( &list );
}
示例#2
0
name_list *SymCompInit( bool code, bool data, bool d2_only, bool dup_ok, mod_handle mod )
{
    sorted_names        *curr;
    walk_find           wf;

    for( curr = SortedNames; curr != NULL; curr = curr->next ) {
        if( code != curr->code )
            continue;
        if( data != curr->data )
            continue;
        if( d2_only != curr->d2_only )
            continue;
        if( dup_ok != curr->dup_ok )
            continue;
        if( mod != curr->mod )
            continue;
        return( &curr->list );
    }
    _Alloc( curr, sizeof( *curr ) );
    wf = 0;
    if( code )
        wf |= WF_CODE;
    if( data )
        wf |= WF_DATA;
    NameListInit( &curr->list, wf );
    NameListAddModules( &curr->list, mod, d2_only, dup_ok );
    curr->next = SortedNames;
    SortedNames = curr;
    curr->code = code;
    curr->data = data;
    curr->d2_only = d2_only;
    curr->dup_ok = dup_ok;
    curr->mod = mod;
    return( &curr->list );
}
示例#3
0
name_list *SymCompInit( bool code, bool data, bool d2_only, bool dup_ok, mod_handle mod )
{
    void                *old;
    sorted_names        *curr;

    for( curr = SortedNames; curr != NULL; curr = curr->next ) {
        if( code != curr->code ) continue;
        if( data != curr->data ) continue;
        if( d2_only != curr->d2_only ) continue;
        if( dup_ok != curr->dup_ok ) continue;
        if( mod != curr->mod ) continue;
        return( &curr->list );
    }
    old = DUIHourGlass( NULL );
    _Alloc( curr, sizeof( *curr ) );
    NameListInit( &curr->list, ( code ? WF_CODE : 0 ) + ( data ? WF_DATA : 0 ) );
    NameListAddModules( &curr->list, mod, d2_only, dup_ok );
    DUIHourGlass( old );
    curr->next = SortedNames;
    SortedNames = curr;
    curr->code = code;
    curr->data = data;
    curr->d2_only = d2_only;
    curr->dup_ok = dup_ok;
    curr->mod = mod;
    return( &curr->list );
}
示例#4
0
bool GlobEventProc( a_window * wnd, gui_event gui_ev, void *parm )
{
    glob_window *glob = WndGlob( wnd );

    parm=parm;
    switch( gui_ev ) {
    case GUI_INIT_WINDOW:
        NameListInit( NameList( glob ), WF_DATA );
        GlobSetOptions( wnd );
        return( TRUE );
    case GUI_DESTROY :
        NameListFree( NameList( glob ) );
        WndFree( glob );
        return( TRUE );
    }
    return( FALSE );
}
示例#5
0
static bool FuncEventProc( a_window * wnd, gui_event gui_ev, void *parm )
{
    func_window *func = WndFunc( wnd );

    parm=parm;
    switch( gui_ev ) {
    case GUI_INIT_WINDOW:
        NameListInit( NameList( func ), WF_CODE );
        func->toggled_break = FALSE;
        FuncSetOptions( wnd );
        WndSetKey( wnd, PIECE_NAME );
        return( TRUE );
    case GUI_RESIZE :
        CalcIndent( wnd );
        WndZapped( wnd );
        break;
    case GUI_DESTROY :
        NameListFree( NameList( func ) );
        WndFree( func );
        return( TRUE );
    }
    return( FALSE );
}