From f1ab3ebad208a7086c82c470697c7d2f1cd03e7b Mon Sep 17 00:00:00 2001 From: pierre Date: Fri, 14 Apr 2000 12:17:12 +0000 Subject: [PATCH] + get longer backtrace when redirected to file --- rtl/inc/system.inc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index 34a480fa22..7d913aaa04 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -514,18 +514,22 @@ Begin Halt(0); End; +function do_isdevice(handle:longint):boolean;forward; + Procedure dump_stack(var f : text;bp : Longint); var i, prevbp : Longint; + is_dev : boolean; Begin prevbp:=bp-1; i:=0; + is_dev:=do_isdevice(textrec(f).Handle); while bp > prevbp Do Begin Writeln(f,BackTraceStrFunc(get_caller_addr(bp))); Inc(i); - If i>max_frame_dump Then + If ((i>max_frame_dump) and is_dev) or (i>256) Then exit; prevbp:=bp; bp:=get_caller_frame(bp); @@ -617,7 +621,10 @@ end; { $Log$ - Revision 1.86 2000-04-02 09:39:25 florian + Revision 1.87 2000-04-14 12:17:12 pierre + + get longer backtrace when redirected to file + + Revision 1.86 2000/04/02 09:39:25 florian * halt in the finalization statement of a unit lead to an endless loop; fixed Revision 1.85 2000/03/14 07:31:57 pierre @@ -689,4 +696,4 @@ end; Revision 1.65 1999/07/28 12:58:22 peter * fixed assert() to push/pop registers -} +} \ No newline at end of file