1.0.33.29: Fix x86oid backtrace on sigaltstack in LDB.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 22 Dec 2009 17:22:50 +0000 (17:22 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 22 Dec 2009 17:22:50 +0000 (17:22 +0000)
  * altstack_pointer_p() derives the location of the altstack from the
value of arch_os_get_current_thread(), which returns a struct thread *.
This caused the subsequent offset calculation to be off by a factor of
sizeof(struct thread), thus completely overshooting the altstack area.

src/runtime/backtrace.c
version.lisp-expr

index 348d204..996357e 100644 (file)
@@ -288,7 +288,7 @@ backtrace(int nframes)
 static int
 altstack_pointer_p (void *p) {
 #ifndef LISP_FEATURE_WIN32
-    void* stack_start = arch_os_get_current_thread() + dynamic_values_bytes;
+    void* stack_start = ((void *)arch_os_get_current_thread()) + dynamic_values_bytes;
     void* stack_end = stack_start + 32*SIGSTKSZ;
 
     return (p > stack_start && p <= stack_end);
index 7c5ac2a..fd429e2 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.33.28"
+"1.0.33.29"