mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-13 21:19:18 +02:00
FpDebug, apps: Compilation fixes
git-svn-id: trunk@63785 -
This commit is contained in:
parent
1ba76474e3
commit
d8007187b8
@ -105,7 +105,7 @@ type
|
|||||||
FBreakPointIdCnt: Integer;
|
FBreakPointIdCnt: Integer;
|
||||||
FBreakPointIdMap: TBreakPointIdMap;
|
FBreakPointIdMap: TBreakPointIdMap;
|
||||||
public
|
public
|
||||||
constructor Create; override;
|
constructor Create(AMemManager: TFpDbgMemManager); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function AddInternalBreakPointToId(ABrkPoint: TFpInternalBreakpoint): Integer;
|
function AddInternalBreakPointToId(ABrkPoint: TFpInternalBreakpoint): Integer;
|
||||||
function GetInternalBreakPointFromId(AnId: Integer): TFpDbgBreakpoint;
|
function GetInternalBreakPointFromId(AnId: Integer): TFpDbgBreakpoint;
|
||||||
@ -243,11 +243,11 @@ begin
|
|||||||
Result := PPointer(Key1)^ - PPointer(Key1)^;
|
Result := PPointer(Key1)^ - PPointer(Key1)^;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TFpServerDbgController.Create;
|
constructor TFpServerDbgController.Create(AMemManager: TFpDbgMemManager);
|
||||||
begin
|
begin
|
||||||
FBreakPointIdMap := TBreakPointIdMap.Create;
|
FBreakPointIdMap := TBreakPointIdMap.Create;
|
||||||
FBreakPointIdMap.OnDataPtrCompare := @DoBreakPointCompare;
|
FBreakPointIdMap.OnDataPtrCompare := @DoBreakPointCompare;
|
||||||
inherited Create;
|
inherited Create(AMemManager);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TFpServerDbgController.Destroy;
|
destructor TFpServerDbgController.Destroy;
|
||||||
@ -416,7 +416,7 @@ end;
|
|||||||
|
|
||||||
procedure TFpDebugThread.FControllerDebugInfoLoaded(Sender: TObject);
|
procedure TFpDebugThread.FControllerDebugInfoLoaded(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
TFpDwarfInfo(FController.CurrentProcess.DbgInfo).MemManager := FMemManager;
|
//TFpDwarfInfo(FController.CurrentProcess.DbgInfo).MemManager := FMemManager;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFpDebugThread.FreeConsoleOutputThread;
|
procedure TFpDebugThread.FreeConsoleOutputThread;
|
||||||
@ -493,7 +493,7 @@ var
|
|||||||
ARunLoop: boolean;
|
ARunLoop: boolean;
|
||||||
AnEvent: TFpDebugEvent;
|
AnEvent: TFpDebugEvent;
|
||||||
begin
|
begin
|
||||||
FController := TFpServerDbgController.Create;
|
FController := TFpServerDbgController.Create(FMemManager);
|
||||||
FController.RedirectConsoleOutput:=true;
|
FController.RedirectConsoleOutput:=true;
|
||||||
FController.OnCreateProcessEvent:=@FControllerCreateProcessEvent;
|
FController.OnCreateProcessEvent:=@FControllerCreateProcessEvent;
|
||||||
FController.OnProcessExitEvent:=@FControllerProcessExitEvent;
|
FController.OnProcessExitEvent:=@FControllerProcessExitEvent;
|
||||||
|
@ -610,6 +610,7 @@ function TFpDebugThreadStackTraceCommand.Execute(AController: TFpServerDbgContro
|
|||||||
var
|
var
|
||||||
ThreadCallStack: TDbgCallstackEntryList;
|
ThreadCallStack: TDbgCallstackEntryList;
|
||||||
i: integer;
|
i: integer;
|
||||||
|
PrettyPrinter: TFpPascalPrettyPrinter;
|
||||||
begin
|
begin
|
||||||
result := false;
|
result := false;
|
||||||
DoProcessLoop:=false;
|
DoProcessLoop:=false;
|
||||||
@ -622,11 +623,12 @@ begin
|
|||||||
AController.CurrentProcess.MainThread.PrepareCallStackEntryList;
|
AController.CurrentProcess.MainThread.PrepareCallStackEntryList;
|
||||||
ThreadCallStack := AController.CurrentProcess.MainThread.CallStackEntryList;
|
ThreadCallStack := AController.CurrentProcess.MainThread.CallStackEntryList;
|
||||||
SetLength(FStackEntryArray, ThreadCallStack.Count);
|
SetLength(FStackEntryArray, ThreadCallStack.Count);
|
||||||
|
PrettyPrinter := TFpPascalPrettyPrinter.Create(sizeof(pointer));
|
||||||
for i := 0 to ThreadCallStack.Count-1 do
|
for i := 0 to ThreadCallStack.Count-1 do
|
||||||
begin
|
begin
|
||||||
FStackEntryArray[i].AnAddress:=ThreadCallStack[i].AnAddress;
|
FStackEntryArray[i].AnAddress:=ThreadCallStack[i].AnAddress;
|
||||||
FStackEntryArray[i].FrameAdress:=ThreadCallStack[i].FrameAdress;
|
FStackEntryArray[i].FrameAdress:=ThreadCallStack[i].FrameAdress;
|
||||||
FStackEntryArray[i].FunctionName:=ThreadCallStack[i].FunctionName+ThreadCallStack[i].GetParamsAsString;
|
FStackEntryArray[i].FunctionName:=ThreadCallStack[i].FunctionName+ThreadCallStack[i].GetParamsAsString(PrettyPrinter);
|
||||||
FStackEntryArray[i].Line:=ThreadCallStack[i].Line;
|
FStackEntryArray[i].Line:=ThreadCallStack[i].Line;
|
||||||
FStackEntryArray[i].SourceFile:=ThreadCallStack[i].SourceFile;
|
FStackEntryArray[i].SourceFile:=ThreadCallStack[i].SourceFile;
|
||||||
end;
|
end;
|
||||||
@ -634,6 +636,7 @@ begin
|
|||||||
// cumbersome. And the chances that this command is called twice, so that
|
// cumbersome. And the chances that this command is called twice, so that
|
||||||
// caching the result is usefull, are slim.
|
// caching the result is usefull, are slim.
|
||||||
AController.CurrentProcess.MainThread.ClearCallStack;
|
AController.CurrentProcess.MainThread.ClearCallStack;
|
||||||
|
PrettyPrinter.Free;
|
||||||
result := true;
|
result := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -683,7 +686,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
Result := True;
|
Result := True;
|
||||||
AContext.MemManager.DefaultContext := AContext;
|
AContext.MemManager.DefaultContext := AContext.LocationContext;
|
||||||
APasExpr := TFpPascalExpression.Create(FExpression, AContext);
|
APasExpr := TFpPascalExpression.Create(FExpression, AContext);
|
||||||
try
|
try
|
||||||
APasExpr.ResultValue; // trigger full validation
|
APasExpr.ResultValue; // trigger full validation
|
||||||
|
Loading…
Reference in New Issue
Block a user