bool DispBPMsg( bool stack_cmds ) { brkp *bp, *next; char *p; bool ret; cmd_list *cmds; ret = FALSE; for( bp = BrkList; bp != NULL; bp = bp->next ) { if( !bp->status.b.hit ) continue; if( !bp->status.b.silent ) { if( bp->th != MAD_NIL_TYPE_HANDLE ) { p = GetBPAddrText( bp, TxtBuff ); p = StrCopy( " - ", p ); p = StrVal( LIT( OldVal ), bp, p ); GetWPVal( bp ); p = StrVal( LIT( NewVal ), bp, p ); *p = NULLCHAR; } else { p = GetBPAddrText( bp, TxtBuff ); } DUIInfoBox( TxtBuff ); } if( stack_cmds && bp->status.b.resume ) { cmds = AllocCmdList( "go/keep", sizeof( "go/keep" ) ); PushCmdList( cmds ); TypeInpStack( INP_HOOK ); FreeCmdList( cmds ); ret = TRUE; } if( stack_cmds && ( bp->cmds != NULL ) && bp->status.b.use_cmds ) { bp->status.b.cmds_pushed = TRUE; PushCmdList( bp->cmds ); TypeInpStack( INP_BREAK_POINT ); ret = TRUE; } } for( bp = BrkList; bp != NULL; bp = next ) { next = bp->next; if( bp->status.b.autodestruct ) { DUIRemoveBreak( bp ); } } if( UserTmpBrk.status.b.hit ) { p = Format( TxtBuff, LIT( Break_on_execute ) ); Format( p, BrkFmt(), UserTmpBrk.loc.addr ); DUIDlgTxt( TxtBuff ); } return( ret ); }
static void RecordBreakEvent( brkp *bp, brk_event event ) { GetBPCmd( bp, event, TxtBuff, TXT_LEN ); RecordEvent( TxtBuff ); if( event == B_SET && !IS_NIL_ADDR( bp->loc.addr ) ) { GetBPAddrText( bp, TxtBuff ); DUIStatusText( TxtBuff ); } }