[llvm-commits] [vmkit] r50857 - /vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Thu May 8 09:08:16 PDT 2008


Author: geoffray
Date: Thu May  8 11:08:16 2008
New Revision: 50857

URL: http://llvm.org/viewvc/llvm-project?rev=50857&view=rev
Log:
Use __libc_stack_end to know the end of a stack (for now).


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp?rev=50857&r1=50856&r2=50857&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaBacktrace.cpp Thu May  8 11:08:16 2008
@@ -43,11 +43,13 @@
 #define FRAME_IP(fp) (fp[1])
 #endif
 
+extern void* __libc_stack_end;
 
 int JavaJIT::getBacktrace(void** stack, int size) {
   void** blah = (void**)__builtin_frame_address(1);
   int cpt = 0;
-  while (blah && cpt < size) {
+  while (blah && cpt < size && blah < __libc_stack_end && 
+         !(((long) blah & 3))) {
     stack[cpt++] = (void**)FRAME_IP(blah);
     blah = (void**)blah[0];
   }





More information about the llvm-commits mailing list