Re: Segfault in gnome_program_init
Okay, I can cure the segfault by reordering the linking of the libs,
with libluminate last. The 200+ MB RAM consumption persists though, and
happens before the first line of code is called...
Any ideas?
Thanks again.
On Wed, 2004-11-24 at 15:38, Adam C Powell IV wrote:
> Greetings,
>
> Since apt-get dist-upgrading in testing about a week ago, the following
> gnome_program_init command has segfaulted with the GNOME error dialog --
> even when it's the first line of code in main()! (Or rather, the
> second, after a printf().)
>
> gnome_program_init ("TSView", VERSION, LIBGNOMEUI_MODULE, argc, argv, NULL);
>
> I'll note that the libluminate library which this program links has had
> trouble with prelink and also with ldd on ARM which I haven't been able
> to track down. For details see:
> http://lists.debian.org/debian-devel/2004/09/msg00616.html which
> received no reply, and bug #271650.
>
> Also, running this program tsview-ng consumes hundreds of megs of RAM
> even before this line is executed, and has for some time now. On the
> other hand, running another binary in the illuminator tree which links
> libluminate but not the GNOME libs runs just fine, no hundreds of megs,
> no segfault.
>
> strace and watching the multiload applet show that the memory
> consumption happens right between the following two calls:
>
> [about 5 mprotect calls]
> mprotect(0x40018000, 704512, PROT_READ|PROT_EXEC) = 0
> set_thread_area({entry_number:-1 -> 6, base_addr:0x4e5466a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
>
> The segfault happens here:
>
> open("/tmp/gconfd-hazelsct/lock/ior", O_RDONLY) = 13
> fstat64(13, {st_mode=S_IFREG|0700, st_size=625, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4e80e000
> read(13, "8644:IOR:010000001500000049444c3"..., 4096) = 625
> read(13, "", 4096) = 0
> close(13) = 0
> munmap(0x4e80e000, 4096) = 0
> socket(PF_FILE, SOCK_STREAM, 0) = 13
> fcntl64(13, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
> fcntl64(13, F_SETFD, FD_CLOEXEC) = 0
> connect(13, {sa_family=AF_FILE, path="/tmp/orbit-hazelsct/linc-21c4-0-2ab997ee1ccf4"}, 48) = 0
> writev(13, [{"GIOP\1\2\1\0T\0\0\0", 12}, {"P\363\377\277\3\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\231H\350"..., 84}], 2) = 96
> poll([{fd=6, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI, revents=POLLIN}], 2, -1) = 1
> read(13, "GIOP\1\2\1\1(\0\0\0", 12) = 12
> read(13, "P\363\377\277\0\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\1\1\1\1"..., 40) = 40
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
>
> What could be going wrong?
>
> Thanks,
-Adam P.
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Welcome to the best software in the world today cafe!
http://lyre.mit.edu/~powell/The_Best_Stuff_In_The_World_Today_Cafe.ogg
Reply to: