From: ppluzhnikov@google.com (Paul Pluzhnikov)
To: gdb-patches@sourceware.org
Cc: ppluzhnikov@google.com, dje@google.com
Subject: [patch] Fix for gdb.threads/staticthreads.exp failure on Linux
Date: Fri, 05 Jun 2009 22:22:00 -0000 [thread overview]
Message-ID: <20090605222214.66E2976BC4@localhost> (raw)
Greetings,
The following tests always fail for us:
FAIL: gdb.threads/staticthreads.exp: running to main in runto
FAIL: gdb.threads/staticthreads.exp: Continue to main's call of sem_post
FAIL: gdb.threads/staticthreads.exp: handle SIG32 helps
This is happening because when loading a statically-linked executable, gdb
detects threads right away, but attempt to enumerate threads at that time
fails, because "thread subsystem" in the inferior has not been initialized
yet. This causes spurious error:
[Thread debugging using libthread_db enabled]
find_new_threads_callback: cannot get thread info: generic error
and makes subsequent debugging impossible.
Attached patch silently ignores such errors, and makes staticthreads PASS.
Tested on Linux/x86_64.
Ok to check in?
Thanks,
--
Paul Pluzhnikov
2009-06-05 Paul Pluzhnikov <ppluzhnikov@google.com>
* linux-thread-db.c (thread_db_find_new_threads_silently):
New function.
(try_thread_db_load_1): Call it.
Index: linux-thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/linux-thread-db.c,v
retrieving revision 1.60
diff -u -p -u -r1.60 linux-thread-db.c
--- linux-thread-db.c 24 May 2009 21:06:53 -0000 1.60
+++ linux-thread-db.c 5 Jun 2009 22:01:37 -0000
@@ -588,6 +588,25 @@ enable_thread_event_reporting (void)
}
}
+/* Same as thread_db_find_new_threads_1, but silently ignore errors. */
+
+static void
+thread_db_find_new_threads_silently (ptid_t ptid)
+{
+ volatile struct gdb_exception except;
+
+ TRY_CATCH (except, RETURN_MASK_ERROR)
+ {
+ thread_db_find_new_threads_1 (ptid);
+ }
+
+ if (except.reason < 0 && info_verbose)
+ {
+ exception_fprintf (gdb_stderr, except,
+ "Warning: thread_db_find_new_threads_silently: ");
+ }
+}
+
/* Lookup a library in which given symbol resides.
Note: this is looking in GDB process, not in the inferior.
Returns library name, or NULL. */
@@ -705,7 +724,7 @@ try_thread_db_load_1 (struct thread_db_i
push_target (&thread_db_ops);
enable_thread_event_reporting ();
- thread_db_find_new_threads_1 (inferior_ptid);
+ thread_db_find_new_threads_silently (inferior_ptid);
return 1;
}
next reply other threads:[~2009-06-05 22:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-05 22:22 Paul Pluzhnikov [this message]
2009-06-15 18:39 ` Paul Pluzhnikov
2009-06-22 16:10 ` Paul Pluzhnikov
2009-06-22 18:10 ` Michael Snyder
2009-06-22 20:21 ` Paul Pluzhnikov
2009-06-29 14:36 ` Paul Pluzhnikov
2009-07-09 6:36 ` Paul Pluzhnikov
2009-07-16 2:42 ` Doug Evans
2009-07-16 2:43 ` Doug Evans
2009-07-16 20:45 ` Paul Pluzhnikov
2009-07-16 20:54 ` Paul Pluzhnikov
2009-07-16 21:16 ` Doug Evans
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=20090605222214.66E2976BC4@localhost \
--to=ppluzhnikov@google.com \
--cc=dje@google.com \
--cc=gdb-patches@sourceware.org \
/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: link
Be 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