diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-15 11:33:20 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-15 11:33:20 +0000 |
commit | 88c105aae1b6d670774996d7c6b39430ce394252 (patch) | |
tree | 6d5a8e0c2b796f1bfae92fbbad5a6be455ee25ef /sal/osl | |
parent | 91d58114d2a7ef8565fd89ef0b4ad350b5006ea2 (diff) |
INTEGRATION: CWS mhu15_SRC680 (1.19.56.1.2); FILE MERGED
2006/11/10 12:41:31 mhu 1.19.56.1.2.1: #i54329# New fix for Solaris x86 backtrace function(s).
Diffstat (limited to 'sal/osl')
-rw-r--r-- | sal/osl/unx/diagnose.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sal/osl/unx/diagnose.c b/sal/osl/unx/diagnose.c index a181e2d57904..d9a697bd4981 100644 --- a/sal/osl/unx/diagnose.c +++ b/sal/osl/unx/diagnose.c @@ -4,9 +4,9 @@ * * $RCSfile: diagnose.c,v $ * - * $Revision: 1.20 $ + * $Revision: 1.21 $ * - * last change: $Author: kz $ $Date: 2006-11-06 14:41:14 $ + * last change: $Author: ihi $ $Date: 2006-11-15 12:33:20 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -198,10 +198,11 @@ static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f) for (i = 0; (i < FRAME_OFFSET) && (fp != 0); i++) fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS); - for (i = 0; (fp != 0) && (fp->fr_savpc != 0) && (fp->fr_savpc != -1); i++) + for (i = 0; (fp != 0) && (fp->fr_savpc != 0); i++) { + struct frame * prev = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS); osl_diagnose_frame_Impl (f, i, (void*)(fp->fr_savpc)); - fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS); + fp = (prev > fp) ? prev : 0; } } |