Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 17 Jun 1998 10:24:52 +0000 (10:24 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 17 Jun 1998 10:24:52 +0000 (10:24 +0000)
1998-06-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/generic/backtrace.c (INNER_THAN): New definition, use it
to compare stack addresses.

ChangeLog
sysdeps/generic/backtrace.c

index f627e8b..ca68a03 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1998-06-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/generic/backtrace.c (INNER_THAN): New definition, use it
+       to compare stack addresses.
+
 1998-06-17  Ulrich Drepper  <drepper@cygnus.com>
 
        * sysdeps/unix/sysv/linux/alpha/glob.c: Include glob.h before
index 7ac1d5f..2d329e1 100644 (file)
@@ -44,6 +44,11 @@ extern void *__libc_stack_end;
 # define CURRENT_STACK_FRAME  ({ char __csf; &__csf; })
 #endif
 
+/* By default we assume that the stack grows downward.  */
+#ifndef INNER_THAN
+# define INNER_THAN <
+#endif
+
 struct layout
 {
   struct layout *next;
@@ -67,7 +72,8 @@ __backtrace (array, size)
   current = (struct layout *) top_frame;
   while (cnt < size)
     {
-      if ((void *) current < top_stack || (void *) current > __libc_stack_end)
+      if ((void *) current INNER_THAN top_stack
+         || !((void *) current INNER_THAN __libc_stack_end))
        /* This means the address is out of range.  Note that for the
          toplevel we see a frame pointer with value NULL which clearly is
          out of range.  */