From 9a845ea22cc25f5346c9d465c9cb206319898bee Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sun, 17 Apr 2011 19:12:20 +0000 Subject: [PATCH] gdb/ * corelow.c: Include wrapper.h. (core_open): Call now gdb_target_find_new_threads. * wrapper.c: Include target.h. (gdb_target_find_new_threads): New. * wrapper.h (gdb_target_find_new_threads): New declaration. --- gdb/ChangeLog | 8 ++++++++ gdb/corelow.c | 3 ++- gdb/wrapper.c | 22 ++++++++++++++++++++++ gdb/wrapper.h | 2 ++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 492082b6163..9a862b129c5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2011-04-17 Jan Kratochvil + + * corelow.c: Include wrapper.h. + (core_open): Call now gdb_target_find_new_threads. + * wrapper.c: Include target.h. + (gdb_target_find_new_threads): New. + * wrapper.h (gdb_target_find_new_threads): New declaration. + 2011-04-17 Jan Kratochvil * linux-thread-db.c (find_new_threads_callback): Exit on zero TI_TID diff --git a/gdb/corelow.c b/gdb/corelow.c index f34b8e1b9d9..33b96ae5fc1 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -47,6 +47,7 @@ #include "filenames.h" #include "progspace.h" #include "objfiles.h" +#include "wrapper.h" #ifndef O_LARGEFILE @@ -428,7 +429,7 @@ core_open (char *filename, int from_tty) may be a thread_stratum target loaded on top of target core by now. The layer above should claim threads found in the BFD sections. */ - target_find_new_threads (); + gdb_target_find_new_threads (); p = bfd_core_file_failing_command (core_bfd); if (p) diff --git a/gdb/wrapper.c b/gdb/wrapper.c index db3af3fb41c..951e6722b52 100644 --- a/gdb/wrapper.c +++ b/gdb/wrapper.c @@ -21,6 +21,7 @@ #include "exceptions.h" #include "wrapper.h" #include "ui-out.h" +#include "target.h" int gdb_parse_exp_1 (char **stringptr, struct block *block, int comma, @@ -161,3 +162,24 @@ gdb_value_struct_elt (struct ui_out *uiout, struct value **result, return GDB_RC_FAIL; return GDB_RC_OK; } + +/* Call target_find_new_threads without throwing exception. Exception is + printed if it got thrown. */ + +int +gdb_target_find_new_threads (void) +{ + volatile struct gdb_exception except; + + TRY_CATCH (except, RETURN_MASK_ERROR) + { + target_find_new_threads (); + } + + if (except.reason < 0) + { + exception_print (gdb_stderr, except); + return 0; + } + return 1; +} diff --git a/gdb/wrapper.h b/gdb/wrapper.h index 068f17cbb31..d50aab753f0 100644 --- a/gdb/wrapper.h +++ b/gdb/wrapper.h @@ -48,4 +48,6 @@ extern int gdb_value_ind (struct value *val, struct value ** rval); extern int gdb_parse_and_eval_type (char *, int, struct type **); +extern int gdb_target_find_new_threads (void); + #endif /* wrapper.h */ -- 2.30.2