mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 15:36:03 +02:00
IDE: fixed debugging exttool
git-svn-id: trunk@60266 -
This commit is contained in:
parent
30146193bb
commit
fd3473241b
@ -175,6 +175,62 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
{$IF defined(VerboseExtToolErrors) or defined(VerboseExtToolThread) or defined(VerboseExtToolAddOutputLines)}
|
||||||
|
function ArgsToString(Args: array of const): string;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
for i:=Low(Args) to High(Args) do begin
|
||||||
|
case Args[i].VType of
|
||||||
|
vtInteger: Result := Result + dbgs(Args[i].vinteger);
|
||||||
|
vtInt64: Result := Result + dbgs(Args[i].VInt64^);
|
||||||
|
vtQWord: Result := Result + dbgs(Args[i].VQWord^);
|
||||||
|
vtBoolean: Result := Result + dbgs(Args[i].vboolean);
|
||||||
|
vtExtended: Result := Result + dbgs(Args[i].VExtended^);
|
||||||
|
vtString: Result := Result + Args[i].VString^;
|
||||||
|
vtAnsiString: Result := Result + AnsiString(Args[i].VAnsiString);
|
||||||
|
vtChar: Result := Result + Args[i].VChar;
|
||||||
|
vtPChar: Result := Result + Args[i].VPChar;
|
||||||
|
vtPWideChar: Result := {%H-}Result {%H-}+ Args[i].VPWideChar;
|
||||||
|
vtWideChar: Result := Result + AnsiString(Args[i].VWideChar);
|
||||||
|
vtWidestring: Result := Result + AnsiString(WideString(Args[i].VWideString));
|
||||||
|
vtObject: Result := Result + DbgSName(Args[i].VObject);
|
||||||
|
vtClass: Result := Result + DbgSName(Args[i].VClass);
|
||||||
|
vtPointer: Result := Result + Dbgs(Args[i].VPointer);
|
||||||
|
else Result := Result + '?unknown variant?';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure DebuglnThreadLog(const args: array of const);
|
||||||
|
var
|
||||||
|
s, Filename: string;
|
||||||
|
fs: TFileStream;
|
||||||
|
begin
|
||||||
|
if GetCurrentThreadId=MainThreadID then
|
||||||
|
debugln(args)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
s:=ArgsToString(args)+sLineBreak;
|
||||||
|
Filename:='lazdbg'+IntToStr(GetCurrentThreadId)+'.log';
|
||||||
|
if FileExistsUTF8(Filename) then
|
||||||
|
fs:=TFileStream.Create(Filename,fmOpenWrite or fmShareDenyNone)
|
||||||
|
else
|
||||||
|
fs:=TFileStream.Create(Filename,fmCreate);
|
||||||
|
try
|
||||||
|
try
|
||||||
|
fs.Seek(0,soEnd);
|
||||||
|
fs.Write(s[1],length(s));
|
||||||
|
except
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
fs.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{ TLazExtToolView }
|
{ TLazExtToolView }
|
||||||
|
|
||||||
procedure TLazExtToolView.SetToolState(AValue: TLMVToolState);
|
procedure TLazExtToolView.SetToolState(AValue: TLMVToolState);
|
||||||
@ -1513,7 +1569,7 @@ begin
|
|||||||
if (not HasOutput) then begin
|
if (not HasOutput) then begin
|
||||||
// no more pending output and process is still running
|
// no more pending output and process is still running
|
||||||
// => tool needs some time
|
// => tool needs some time
|
||||||
Sleep(10);
|
Sleep(50);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$IFDEF VerboseExtToolThread}
|
{$IFDEF VerboseExtToolThread}
|
||||||
|
Loading…
Reference in New Issue
Block a user