public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "ed dot connell at sas dot com" <sourceware-bugzilla@sourceware.org> To: glibc-bugs@sources.redhat.com Subject: [Bug nptl/1812] New: segv when thread exits after throw/catch of C++ exception Date: Fri, 04 Nov 2005 22:23:00 -0000 [thread overview] Message-ID: <20051104222343.1812.ed.connell@sas.com> (raw) I have a simple C program that spawns a thread; the thread calls into a dlopen'd shared library. The shared library is in C++ and its lone entry point just does a throw and catch before returning. We return back into the thread and when the thread exits it crashes. This happens on at least x86, x86_64 and ia64 on both SLES 9 and RHEL 4. I'm not sure if the problem is in libpthread or libstdc++ or gcc...apologies if this ends up being the wrong venue. $ gcc -o threadtest threadtest.c -pthread -lpthread -ldl -g $ g++ -shared -o libthrow.so throw.cpp -lstdc++ -g $ export LD_LIBRARY_PATH=. $ ./threadtest thread done, program should exit Segmentation fault threadtest.c ******** #include <pthread.h> #include <stdio.h> #include <dlfcn.h> int ThreadFn(void *arg) { int (*throw_entry)(void); void *handle; handle = dlopen("libthrow.so", RTLD_NOW); throw_entry = dlsym(handle, "throw_entry"); if (throw_entry() != 123) { printf("throw_entry() didn't return 123 as expected\n"); } dlclose(handle); printf("thread done, program should exit\n"); return 0; } int main(int argc, char* argv[]) { pthread_t thread; void *ret; pthread_create(&thread, NULL, (void *(*)(void *))ThreadFn, 0); pthread_join(thread, &ret); return 0; } ******** throw.cpp ******** extern "C" { int throw_entry(void); }; class foo {}; int throw_entry(void) { try { throw foo(); } catch(foo) { return 123; } return 0; } ******** -- Summary: segv when thread exits after throw/catch of C++ exception Product: glibc Version: 2.3.4 Status: NEW Severity: normal Priority: P2 Component: nptl AssignedTo: drepper at redhat dot com ReportedBy: ed dot connell at sas dot com CC: glibc-bugs at sources dot redhat dot com http://sourceware.org/bugzilla/show_bug.cgi?id=1812 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
next reply other threads:[~2005-11-04 22:23 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2005-11-04 22:23 ed dot connell at sas dot com [this message] 2005-11-06 20:01 ` [Bug nptl/1812] " drepper at redhat dot com
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20051104222343.1812.ed.connell@sas.com \ --to=sourceware-bugzilla@sourceware.org \ --cc=glibc-bugs@sources.redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).