From 4bb38c13dcb99880ce614dd9f181df0b494dd6e4 Mon Sep 17 00:00:00 2001 From: pierre Date: Thu, 21 Nov 2002 15:48:39 +0000 Subject: [PATCH] * fix several problems related to remote cross debugging --- ide/fpdebug.pas | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/ide/fpdebug.pas b/ide/fpdebug.pas index 86897521a3..5943409f8a 100644 --- a/ide/fpdebug.pas +++ b/ide/fpdebug.pas @@ -59,6 +59,7 @@ type procedure InsertBreakpoints; procedure RemoveBreakpoints; procedure ReadWatches; + procedure RereadWatches; procedure ResetBreakpointsValues; procedure DoDebuggerScreen;virtual; procedure DoUserScreen;virtual; @@ -192,6 +193,7 @@ type procedure Store(var S: TStream); procedure rename(s : string); procedure Get_new_value; + procedure Force_new_value; destructor done;virtual; expr : pstring; private @@ -728,6 +730,19 @@ begin WatchesWindow^.Update; end; +procedure TDebugController.RereadWatches; + + procedure DoRead(PB : PWatch); + begin + PB^.Force_new_value; + end; + +begin + WatchesCollection^.ForEach(@DoRead); + If Assigned(WatchesWindow) then + WatchesWindow^.Update; +end; + procedure TDebugController.RemoveBreakpoints; procedure DoDelete(PB : PBreakpoint); @@ -2560,7 +2575,11 @@ procedure TWatch.Get_new_value; inc(curframe); if not Debugger^.set_current_frame(curframe) then loop_higher:=false; +{$ifdef FrameNameKnown} + s2:='/x '+FrameName; +{$else not FrameNameKnown} s2:='/x $ebp'; +{$endif FrameNameKnown} getValue(s2); j:=pos('=',s2); if j>0 then @@ -2626,6 +2645,12 @@ procedure TWatch.Get_new_value; GDBRunCount:=Debugger^.RunCount; end; +procedure TWatch.Force_new_value; + begin + GDBRunCount:=-1; + Get_new_value; + end; + destructor TWatch.Done; begin if assigned(expr) then @@ -3872,7 +3897,7 @@ end; {$ifndef NODEBUG} Debugger^.Command('f '+IntToStr(Focused)); { for local vars } - Debugger^.ReadWatches; + Debugger^.RereadWatches; {$endif} { goto source } inherited GotoSource; @@ -3886,7 +3911,7 @@ end; {$ifndef NODEBUG} Debugger^.Command('f '+IntToStr(Focused)); { for local vars } - Debugger^.ReadWatches; + Debugger^.RereadWatches; {$endif} { goto source/assembly mixture } InitDisassemblyWindow; @@ -4250,7 +4275,10 @@ end. { $Log$ - Revision 1.34 2002-11-21 00:37:56 pierre + Revision 1.35 2002-11-21 15:48:39 pierre + * fix several problems related to remote cross debugging + + Revision 1.34 2002/11/21 00:37:56 pierre + some cross gdb enhancements Revision 1.33 2002/09/21 22:23:49 pierre