From 5fcf18bf30e15989b5c9811474cb423e0df2ba05 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 10 May 2014 12:36:04 +0000 Subject: [PATCH] FpDebugger (pure): eval hints and debug-inspect for selected stackframe git-svn-id: trunk@44992 - --- .../lazdebuggerfp/fpdebugdebugger.pas | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas index 090a7a9feb..3401b8b159 100644 --- a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas +++ b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas @@ -312,6 +312,7 @@ var AFrame: TDbgCallstackEntry; RegList: TDbgRegisterValueList; Reg: TDbgRegisterValue; + CurStackList: TCallStackBase; begin AController := FpDebugger.FDbgController; if (AController = nil) or (AController.CurrentProcess = nil) or @@ -322,7 +323,11 @@ begin end; CurThreadId := Debugger.Threads.CurrentThreads.CurrentThreadId; - CurStackFrame := Debugger.CallStack.CurrentCallStackList.EntriesForThreads[CurThreadId].CurrentIndex; + CurStackList := Debugger.CallStack.CurrentCallStackList.EntriesForThreads[CurThreadId]; + if CurStackList <> nil then + CurStackFrame := Debugger.CallStack.CurrentCallStackList.EntriesForThreads[CurThreadId].CurrentIndex + else + CurStackFrame := 0; if CurStackFrame > 0 then begin @@ -814,6 +819,7 @@ var StackFrame, ThreadId: Integer; RegList: TDbgRegisterValueList; Reg: TDbgRegisterValue; + StackList: TCallStackBase; begin Result := False; AResText := ''; @@ -829,9 +835,12 @@ begin RepeatCnt := AWatchValue.RepeatCount; end else begin - // TODO: frame and thread - StackFrame := 0; - ThreadId := 1; + ThreadId := Threads.CurrentThreads.CurrentThreadId; + StackList := CallStack.CurrentCallStackList.EntriesForThreads[ThreadId]; + if StackList <> nil then + StackFrame := CallStack.CurrentCallStackList.EntriesForThreads[ThreadId].CurrentIndex + else + StackFrame := 0; DispFormat := wdfDefault; RepeatCnt := -1; end;