lazarus/lcl/utrace.pp
michael f088b13a3e + Initial import
git-svn-id: trunk@2 -
2000-07-13 10:28:31 +00:00

58 lines
1.0 KiB
ObjectPascal

unit utrace;
{$mode objfpc}
interface
uses sysutils;
type
TAssertErrorProc = procedure(Const Msg,FN : String;LineNo,TheAddr : Longint);
var
TraceFileName : string;
OldProcPointer : Pointer; // the current Assert Error Handler
implementation
procedure TraceAssertHandler(Const Msg,FN : String;LineNo,TheAddr : Longint);
var
fileH : Text;
begin
if LowerCase(LeftStr(Msg, 6)) = 'trace:' then
begin
Assign(fileH, TraceFileName);
{$I-}
if TraceFileName <> '' then
if FileExists(TraceFileName) = False then
begin
Rewrite(fileH);
Close(fileH);
end;
Append(fileH);
if ioresult = 0 then
Writeln(fileH, RightStr(Msg, Length(Msg) - 6));
Close(fileH);
{$I+}
end
else
TAssertErrorProc(oldProcPointer)(Msg, FN, LineNo, TheAddr);
end;
initialization
TraceFileName := '';
OldProcPointer := AssertErrorProc; // the current Assert Error Handler
AssertErrorProc := @TraceAssertHandler // set to new Assert Error Handler
end.