コード例 #1
0
ファイル: dbgbrk.c プロジェクト: groessler/open-watcom-v2
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
ファイル: symcomp.c プロジェクト: Ukusbobra/open-watcom-v2
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
static void FuncSetMod( a_window *wnd, mod_handle mod )
{
    func_window *func = WndFunc( wnd );

    func->mod = mod;
    NameListAddModules( NameList( func ), mod, func->d2_only, TRUE );
    CalcIndent( wnd );
}
コード例 #5
0
ファイル: dbgwglob.c プロジェクト: Ukusbobra/open-watcom-v2
static  void    GlobInit( a_window *wnd )
{
    glob_window *glob = WndGlob( wnd );

    WndScrollAbs( wnd, 0 );
    NameListFree( NameList( glob ) );
    WndZapped( wnd );
    NameListAddModules( NameList( glob ), glob->mod, glob->d2_only, TRUE );
    WndSetKey( wnd, PIECE_NAME );
}