mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 22:46:01 +02:00
* stop backtrace also when caller frame is nil
This commit is contained in:
parent
80d44f0691
commit
9e8618afe6
@ -768,6 +768,7 @@ var
|
|||||||
i : Longint;
|
i : Longint;
|
||||||
prevbp : Pointer;
|
prevbp : Pointer;
|
||||||
is_dev : boolean;
|
is_dev : boolean;
|
||||||
|
caller_frame,
|
||||||
caller_addr : Pointer;
|
caller_addr : Pointer;
|
||||||
Begin
|
Begin
|
||||||
prevbp:=bp-1;
|
prevbp:=bp-1;
|
||||||
@ -776,13 +777,16 @@ Begin
|
|||||||
while bp > prevbp Do
|
while bp > prevbp Do
|
||||||
Begin
|
Begin
|
||||||
caller_addr := get_caller_addr(bp);
|
caller_addr := get_caller_addr(bp);
|
||||||
if caller_addr <> nil then
|
caller_frame := get_caller_frame(bp);
|
||||||
Writeln(f,BackTraceStrFunc(caller_addr));
|
if (caller_addr=nil) or
|
||||||
|
(caller_frame=nil) then
|
||||||
|
break;
|
||||||
|
Writeln(f,BackTraceStrFunc(caller_addr));
|
||||||
Inc(i);
|
Inc(i);
|
||||||
If ((i>max_frame_dump) and is_dev) or (i>256) Then
|
If ((i>max_frame_dump) and is_dev) or (i>256) Then
|
||||||
exit;
|
break;
|
||||||
prevbp:=bp;
|
prevbp:=bp;
|
||||||
bp:=get_caller_frame(bp);
|
bp:=caller_frame;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -882,7 +886,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.58 2004-05-16 18:51:20 peter
|
Revision 1.59 2004-05-27 23:34:23 peter
|
||||||
|
* stop backtrace also when caller frame is nil
|
||||||
|
|
||||||
|
Revision 1.58 2004/05/16 18:51:20 peter
|
||||||
* use thandle in do_*
|
* use thandle in do_*
|
||||||
|
|
||||||
Revision 1.57 2004/05/01 15:26:33 jonas
|
Revision 1.57 2004/05/01 15:26:33 jonas
|
||||||
|
Loading…
Reference in New Issue
Block a user