Changeset 29 for trunk/thune/debugger

Show
Ignore:
Timestamp:
02/07/06 21:43:18 (3 years ago)
Author:
krobillard
Message:

Thune - Debugger now break on halt (!).

Location:
trunk/thune/debugger
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/thune/debugger/ThuneDebugger.cpp

    r20 r29  
    525525 
    526526 
    527 int ThuneDebugger::monitorRun( int cmd, UCell* /*pc*/, UCell* /*end*/ ) 
    528 { 
    529     if( cmd == UR_EMH_STEP ) 
    530     { 
    531         gDB->_runCycle++; 
    532         if( (gDB->_runCycle & 127) == 0 ) 
    533         { 
    534             qApp->processEvents(); 
    535             if( gDB->_interrupt ) 
     527int ThuneDebugger::monitorRun( int cmd, UCell* pc, UCell* end ) 
     528{ 
     529    switch( cmd ) 
     530    { 
     531        case UR_EMH_STEP: 
     532            gDB->_runCycle++; 
     533            if( (gDB->_runCycle & 127) == 0 ) 
     534            { 
     535                qApp->processEvents(); 
     536                if( gDB->_interrupt ) 
     537                { 
     538                    UR_CALL_OP = OP_QUIT; 
     539                    return 1; 
     540                } 
     541            } 
     542            break; 
     543 
     544        case UR_EMH_HALT: 
     545            gDB->setMode( kModeStep ); 
     546 
     547            gDB->showPC( pc, end ); 
     548            int ret = gDB->_loop->exec(); 
     549            if( ret < 0 ) 
    536550            { 
    537551                UR_CALL_OP = OP_QUIT; 
    538552                return 1; 
    539553            } 
    540         } 
     554            break; 
    541555    } 
    542556    return 0; 
     
    578592 
    579593 
    580 /* 
    581 void ThuneDebugger::setState( int mode ) 
    582 { 
    583 } 
    584 */ 
    585  
    586  
    587 bool ThuneDebugger::createEnv( int mode ) 
     594void ThuneDebugger::setMode( int mode ) 
     595{ 
     596    switch( mode ) 
     597    { 
     598        case kModeDone: 
     599            _mode = kModeDone; 
     600            _env.monitor = monitorIgnore; 
     601            _actRun->setEnabled( true ); 
     602            _actStep->setEnabled( true ); 
     603            _actHalt->setEnabled( false ); 
     604            break; 
     605 
     606        case kModeRun: 
     607            _mode = kModeRun; 
     608            _env.monitor = monitorRun; 
     609            _actRun->setEnabled( false ); 
     610            _actStep->setEnabled( false ); 
     611            _actHalt->setEnabled( true ); 
     612            break; 
     613 
     614        case kModeStep: 
     615            _mode = kModeStep; 
     616            _env.monitor = monitorStep; 
     617            _actRun->setEnabled( true ); 
     618            _actStep->setEnabled( true ); 
     619            _actHalt->setEnabled( false ); 
     620            break; 
     621    } 
     622} 
     623 
     624 
     625bool ThuneDebugger::createEnv() 
    588626{ 
    589627    destroyEnv(); 
     
    601639    if( ur_startup( &_env ) ) 
    602640        return false; 
    603  
    604     if( mode == kModeStep ) 
    605         _env.monitor = monitorStep; 
    606     else 
    607         _env.monitor = monitorRun; 
    608641 
    609642    _tmpStrN = ur_makeBinary( 256 ); 
     
    653686            } 
    654687 
    655             _mode = kModeDone; 
    656             _actRun->setEnabled( true ); 
    657             _actStep->setEnabled( true ); 
    658             _actHalt->setEnabled( false ); 
     688            setMode( kModeDone ); 
    659689            statusBar()->showMessage(tr("Finished"), 2000); 
    660690        } 
     
    689719        case kModeVoid: 
    690720        case kModeDone: 
    691             if( createEnv( kModeRun ) ) 
     721            if( createEnv() ) 
    692722            { 
    693                 _mode = kModeRun; 
    694                 _actRun->setEnabled( false ); 
    695                 _actStep->setEnabled( false ); 
    696                 _actHalt->setEnabled( true ); 
     723                setMode( kModeRun ); 
    697724                statusBar()->showMessage(tr("Running..."), 2000); 
    698725                eval(); 
     
    701728 
    702729        case kModeStep: 
    703             _env.monitor = monitorRun; 
    704             _mode = kModeRun; 
    705             _actStep->setEnabled( false ); 
    706             _actHalt->setEnabled( true ); 
     730            setMode( kModeRun ); 
    707731            gDB->_loop->exit( 0 ); 
    708732            break; 
     
    717741        case kModeVoid: 
    718742        case kModeDone: 
    719             if( createEnv( kModeStep ) ) 
     743            if( createEnv() ) 
    720744            { 
    721                 _mode = kModeStep; 
    722                 _actHalt->setEnabled( false ); 
     745                setMode( kModeStep ); 
    723746                statusBar()->showMessage(tr("Stepping..."), 2000); 
    724747                eval(); 
  • trunk/thune/debugger/ThuneDebugger.h

    r20 r29  
    6464 
    6565    void showPC( UCell* pc, UCell* end ); 
    66     bool createEnv( int ); 
     66    void setMode( int ); 
     67    bool createEnv(); 
    6768    void destroyEnv(); 
    6869    void eval(); 
  • trunk/thune/debugger/project.r

    r20 r29  
    1616 
    1717    linux [ 
    18         libs_from %/usr/X11R6/lib64 
    19           {SM Xinerama Xext Xrandr Xrender Xcursor Xi Xft X11} 
     18        ;libs_from %/usr/X11R6/lib64 
     19        ;  {SM Xinerama Xext Xrandr Xrender Xcursor Xi Xft X11} 
    2020        libs {png freetype dl} 
    2121    ]