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

ludo-mXXj517/[email protected] (Ludovic Courtès) Thu, 29 Oct 2009 23:34:26 +0100
Newsgroups gmane.comp.programming.garbage-collection.boehmgc,gmane.comp.gdb.bugs.general
Message-ID <[email protected]>
Hi Hans,

"Boehm, Hans" <[email protected]> writes:

> There may be an easy GC-specific workaound, int that you can probably
> build it with -DNO_GETCONTEXT.

Actually this and =E2=80=98__x86_64_preferred_memory_instruction=3D0=E2=80=
=99 turn out to
be enough to run a libgc application with process recording on
=E2=80=98x86_64-unknown-linux-gnu=E2=80=99.

... well, up to a certain point, because Guile 1.9, for instance,
eventually hits this:

--8<---------------cut here---------------start------------->8---
The next instruction is syscall munmap.  It will free the memory addr =3D=
 0x7ffff7ff2000 len =3D 4096.  It will make record target get error.  Do =
you want to stop the program?([y] or n)=20
Process record: inferior program stopped.

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff6594405 in munmap () from /nix/store/s88vdfglm94x7jn0vqm24pqhq=
460s0c7-glibc-2.9/lib/libc.so.6
(gdb) bt
#0  0x00007ffff6594405 in munmap () from /nix/store/s88vdfglm94x7jn0vqm24=
pqhq460s0c7-glibc-2.9/lib/libc.so.6
#1  0x00007ffff6538a82 in _IO_setb_internal () from /nix/store/s88vdfglm9=
4x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#2  0x00007ffff6537685 in _IO_new_file_close_it () from /nix/store/s88vdf=
glm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#3  0x00007ffff652ae20 in fclose@@GLIBC_2.2.5 () from /nix/store/s88vdfgl=
m94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#4  0x00007ffff64e952c in __gconv_read_conf () from /nix/store/s88vdfglm9=
4x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#5  0x00007ffff7405f93 in pthread_once () from /nix/store/s88vdfglm94x7jn=
0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0
#6  0x00007ffff64e8894 in __gconv_find_transform () from /nix/store/s88vd=
fglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#7  0x00007ffff64e6e85 in __gconv_open () from /nix/store/s88vdfglm94x7jn=
0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#8  0x00007ffff64e6a3e in iconv_open () from /nix/store/s88vdfglm94x7jn0v=
qm24pqhq460s0c7-glibc-2.9/lib/libc.so.6
#9  0x00007ffff6ef1eb5 in libunistring_mem_iconveh () from /nix/store/nik=
3gcgkjpnldiip2d300czqn1mg6q65-user-environment/lib/libunistring.so.0
#10 0x00007ffff6ef2870 in mem_iconveha_notranslit () from /nix/store/nik3=
gcgkjpnldiip2d300czqn1mg6q65-user-environment/lib/libunistring.so.0
#11 0x00007ffff6ef2ab1 in libunistring_mem_iconveha () from /nix/store/ni=
k3gcgkjpnldiip2d300czqn1mg6q65-user-environment/lib/libunistring.so.0
#12 0x00007ffff6ef9a0e in u32_conv_from_encoding () from /nix/store/nik3g=
cgkjpnldiip2d300czqn1mg6q65-user-environment/lib/libunistring.so.0

[...]
--8<---------------cut here---------------end--------------->8---

Looks like this is not quite ready for the desktop.  ;-)

Thanks,
Ludo=E2=80=99.