Re: GDB 7's process record/replay & BDW-GC

2009-11-01 Thread teawater
http://sourceware.org/gdb/wiki/ProcessRecord


On Oct 30, 5:47 am, "Boehm, Hans"  wrote:
> There may be an easy GC-specific workaound, int that you can probably build 
> it with -DNO_GETCONTEXT.  Or you might be able to link statically against 
> libc?  But this doesn't sound like this will be the last such problem.  It 
> sounds to me like these things really need to get fixed in gdb.
>
> Hans
>
> > -Original Message-
> > From: gc-boun...@napali.hpl.hp.com
> > [mailto:gc-boun...@napali.hpl.hp.com] On Behalf Of Ludovic Courtès
> > Sent: Wednesday, October 28, 2009 3:54 PM
> > To: g...@napali.hpl.hp.com
> > Cc: bug-...@gnu.org
> > Subject: [Gc] Re: GDB 7's process record/replay & BDW-GC
>
> > Hi,
>
> > l...@gnu.org (Ludovic Courtès) writes:
>
> > > Process record doesn't support instruction 0xf6e at address
> > 0x7789f2f2.
> > > Process record: failed to record execution log.
>
> > > Program received signal SIGTRAP, Trace/breakpoint trap.
> > > 0x7789f2f0 in memset () from
> > > /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
>
> > I should have started with that: a web search shows that it's
> > a known issue, not specific to libgc:
>
> >  http://sources.redhat.com/bugzilla/show_bug.cgi?id=10743
> >  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550710
>
> > The suggested workaround allows it to go a bit further:
>
> > --8<---cut here---start->8---
> > Breakpoint 1, main (argc=1, argv=0x7fffc8e8) at ,,t.c:6
> > 6         GC_INIT ();
> > (gdb) set __x86_64_preferred_memory_instruction=0
> > (gdb) record
> > (gdb) n
> > warning: Process record ignores the memory change of
> > instruction at address 0x77612e5a because it can't get
> > the value of the segment register.
> > warning: Process record ignores the memory change of
> > instruction at address 0x7784e8c3 because it can't get
> > the value of the segment register.
> > Process record doesn't support instruction 0xfae at address
> > 0x77862c00.
> > Process record: failed to record execution log.
>
> > Program received signal SIGTRAP, Trace/breakpoint trap.
> > 0x77862c00 in getcontext () from
> > /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
> > (gdb) bt
> > #0  0x77862c00 in getcontext () from
> > /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
> > #1  0x77b96cfa in GC_with_callee_saves_pushed
> > (fn=, arg=0x7fffc73c "") at ../mach_dep.c:194
> > #2  0x77b8e795 in GC_push_roots (all= > out>, cold_gc_frame=0x7fffc73c "") at ../mark_rts.c:790
> > #3  0x77b8df0c in GC_mark_some
> > (cold_gc_frame=0x7fffc73c "") at ../mark.c:359
> > #4  0x77b853f8 in GC_stopped_mark
> > (stop_func=0x77b846d0 ) at ../alloc.c:602
> > #5  0x77b8568d in GC_try_to_collect_inner
> > (stop_func=0x77b846d0 ) at ../alloc.c:421
> > #6  0x77b905c2 in GC_init () at ../misc.c:843
> > #7  0x00400788 in main (argc=1, argv=0x7fffc8e8)
> > at ,,t.c:6 --8<---cut
> > here---end--->8---
>
> > That's the 'stmxcsr' instruction, apparently an MMX2
> > instruction, unconditionally used by the linux/x86_64
> > getcontext(3) implementation.
>
> > I find it surprising that getcontext(3) doesn't have a
> > mechanism akin to '__x86_64_preferred_memory_instruction' to
> > choose whether or not to use
> > MMX2 instructions.
>
> > Comments?
>
> > Thanks,
> > Ludo'.
>
> > ___
> > Gc mailing list
> > g...@linux.hpl.hp.com
> >http://www.hpl.hp.com/hosted/linux/mail-archives/gc/

___
bug-gdb mailing list
bug-gdb@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gdb


RE: [Gc] Re: GDB 7's process record/replay & BDW-GC

2009-10-29 Thread Boehm, Hans
There may be an easy GC-specific workaound, int that you can probably build it 
with -DNO_GETCONTEXT.  Or you might be able to link statically against libc?  
But this doesn't sound like this will be the last such problem.  It sounds to 
me like these things really need to get fixed in gdb.

Hans 

> -Original Message-
> From: gc-boun...@napali.hpl.hp.com 
> [mailto:gc-boun...@napali.hpl.hp.com] On Behalf Of Ludovic Courtès
> Sent: Wednesday, October 28, 2009 3:54 PM
> To: g...@napali.hpl.hp.com
> Cc: bug-gdb@gnu.org
> Subject: [Gc] Re: GDB 7's process record/replay & BDW-GC
> 
> Hi,
> 
> l...@gnu.org (Ludovic Courtès) writes:
> 
> > Process record doesn't support instruction 0xf6e at address 
> 0x7789f2f2.
> > Process record: failed to record execution log.
> >
> > Program received signal SIGTRAP, Trace/breakpoint trap.
> > 0x7789f2f0 in memset () from 
> > /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
> 
> I should have started with that: a web search shows that it's 
> a known issue, not specific to libgc:
> 
>   http://sources.redhat.com/bugzilla/show_bug.cgi?id=10743
>   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550710
> 
> The suggested workaround allows it to go a bit further:
> 
> --8<---cut here---start->8---
> Breakpoint 1, main (argc=1, argv=0x7fffc8e8) at ,,t.c:6
> 6 GC_INIT ();
> (gdb) set __x86_64_preferred_memory_instruction=0
> (gdb) record
> (gdb) n
> warning: Process record ignores the memory change of 
> instruction at address 0x77612e5a because it can't get 
> the value of the segment register.
> warning: Process record ignores the memory change of 
> instruction at address 0x7784e8c3 because it can't get 
> the value of the segment register.
> Process record doesn't support instruction 0xfae at address 
> 0x77862c00.
> Process record: failed to record execution log.
> 
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x77862c00 in getcontext () from 
> /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
> (gdb) bt
> #0  0x77862c00 in getcontext () from 
> /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
> #1  0x77b96cfa in GC_with_callee_saves_pushed 
> (fn=, arg=0x7fffc73c "") at ../mach_dep.c:194
> #2  0x77b8e795 in GC_push_roots (all= out>, cold_gc_frame=0x7fffc73c "") at ../mark_rts.c:790
> #3  0x77b8df0c in GC_mark_some 
> (cold_gc_frame=0x7fffc73c "") at ../mark.c:359
> #4  0x77b853f8 in GC_stopped_mark 
> (stop_func=0x77b846d0 ) at ../alloc.c:602
> #5  0x77b8568d in GC_try_to_collect_inner 
> (stop_func=0x77b846d0 ) at ../alloc.c:421
> #6  0x77b905c2 in GC_init () at ../misc.c:843
> #7  0x00400788 in main (argc=1, argv=0x7fffc8e8) 
> at ,,t.c:6 --8<---cut 
> here---end--->8---
> 
> That's the 'stmxcsr' instruction, apparently an MMX2 
> instruction, unconditionally used by the linux/x86_64 
> getcontext(3) implementation.
> 
> I find it surprising that getcontext(3) doesn't have a 
> mechanism akin to '__x86_64_preferred_memory_instruction' to 
> choose whether or not to use
> MMX2 instructions.
> 
> Comments?
> 
> Thanks,
> Ludo'.
> 
> ___
> Gc mailing list
> g...@linux.hpl.hp.com
> http://www.hpl.hp.com/hosted/linux/mail-archives/gc/
> 

___
bug-gdb mailing list
bug-gdb@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gdb