Changeset 29 for trunk/thune/debugger
- Timestamp:
- 02/07/06 21:43:18 (3 years ago)
- Location:
- trunk/thune/debugger
- Files:
-
- 3 modified
-
ThuneDebugger.cpp (modified) (7 diffs)
-
ThuneDebugger.h (modified) (1 diff)
-
project.r (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thune/debugger/ThuneDebugger.cpp
r20 r29 525 525 526 526 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 ) 527 int 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 ) 536 550 { 537 551 UR_CALL_OP = OP_QUIT; 538 552 return 1; 539 553 } 540 }554 break; 541 555 } 542 556 return 0; … … 578 592 579 593 580 /* 581 void ThuneDebugger::setState( int mode ) 582 { 583 } 584 */ 585 586 587 bool ThuneDebugger::createEnv( int mode ) 594 void 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 625 bool ThuneDebugger::createEnv() 588 626 { 589 627 destroyEnv(); … … 601 639 if( ur_startup( &_env ) ) 602 640 return false; 603 604 if( mode == kModeStep )605 _env.monitor = monitorStep;606 else607 _env.monitor = monitorRun;608 641 609 642 _tmpStrN = ur_makeBinary( 256 ); … … 653 686 } 654 687 655 _mode = kModeDone; 656 _actRun->setEnabled( true ); 657 _actStep->setEnabled( true ); 658 _actHalt->setEnabled( false ); 688 setMode( kModeDone ); 659 689 statusBar()->showMessage(tr("Finished"), 2000); 660 690 } … … 689 719 case kModeVoid: 690 720 case kModeDone: 691 if( createEnv( kModeRun) )721 if( createEnv() ) 692 722 { 693 _mode = kModeRun; 694 _actRun->setEnabled( false ); 695 _actStep->setEnabled( false ); 696 _actHalt->setEnabled( true ); 723 setMode( kModeRun ); 697 724 statusBar()->showMessage(tr("Running..."), 2000); 698 725 eval(); … … 701 728 702 729 case kModeStep: 703 _env.monitor = monitorRun; 704 _mode = kModeRun; 705 _actStep->setEnabled( false ); 706 _actHalt->setEnabled( true ); 730 setMode( kModeRun ); 707 731 gDB->_loop->exit( 0 ); 708 732 break; … … 717 741 case kModeVoid: 718 742 case kModeDone: 719 if( createEnv( kModeStep) )743 if( createEnv() ) 720 744 { 721 _mode = kModeStep; 722 _actHalt->setEnabled( false ); 745 setMode( kModeStep ); 723 746 statusBar()->showMessage(tr("Stepping..."), 2000); 724 747 eval(); -
trunk/thune/debugger/ThuneDebugger.h
r20 r29 64 64 65 65 void showPC( UCell* pc, UCell* end ); 66 bool createEnv( int ); 66 void setMode( int ); 67 bool createEnv(); 67 68 void destroyEnv(); 68 69 void eval(); -
trunk/thune/debugger/project.r
r20 r29 16 16 17 17 linux [ 18 libs_from %/usr/X11R6/lib6419 {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} 20 20 libs {png freetype dl} 21 21 ]
