On Dec 23, 2007 11:27 PM, Julian Seward <[EMAIL PROTECTED]> wrote:
>
> > #0  vgPlain_get_StackTrace2 (tid_if_known=<value optimized out>,
> >     ips=0x389113f0, n_ips=12, ip=0, sp=0, fp=0, lr=0, fp_min=0,
> > fp_max_orig=0) at m_stacktrace.c:230
>
> The stack unwinder is being started with ip, sp, fp, lr values
> for the thread concerned of zero, which leads to the segfault.
> Are you sure the thread for which you are getting a stack trace
> has good values for those registers?

The attached exp-drd patch fixes the aforementioned crash. Julian, can
you please apply it ?

Thanks,

Bart.
Index: exp-drd/drd_segment.c
===================================================================
--- exp-drd/drd_segment.c	(revision 7308)
+++ exp-drd/drd_segment.c	(working copy)
@@ -64,7 +64,7 @@
   sg->next = 0;
   sg->prev = 0;
 
-  if (vg_created != VG_INVALID_THREADID)
+  if (vg_created != VG_INVALID_THREADID && VG_(get_SP)(vg_created) != 0)
     sg->stacktrace = VG_(record_ExeContext)(vg_created, 0);
   else
     sg->stacktrace = 0;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to