2004-09-08 Andrew Cagney <cagney@gnu.org>

* thread-db.c (keep_thread_db): Delete.
	(thread_db_new_objfile, thread_db_create_inferior)
	(thread_db_mourn_inferior): Simplify assuming !keep_thread_db.
This commit is contained in:
Andrew Cagney
2004-09-08 19:44:22 +00:00
parent f6792ef4af
commit b26a6851b5
2 changed files with 11 additions and 35 deletions

View File

@ -1,3 +1,9 @@
2004-09-08 Andrew Cagney <cagney@gnu.org>
* thread-db.c (keep_thread_db): Delete.
(thread_db_new_objfile, thread_db_create_inferior)
(thread_db_mourn_inferior): Simplify assuming !keep_thread_db.
2004-09-08 Mark Kettenis <kettenis@gnu.org> 2004-09-08 Mark Kettenis <kettenis@gnu.org>
* i386-tdep.h (FPC_REGNUM, FCTRL_REGNUM, FSTAT_REGNUM, FTAG_REGNUM) * i386-tdep.h (FPC_REGNUM, FCTRL_REGNUM, FSTAT_REGNUM, FTAG_REGNUM)

View File

@ -63,10 +63,6 @@ static void (*target_new_objfile_chain) (struct objfile * objfile);
/* Non-zero if we're using this module's target vector. */ /* Non-zero if we're using this module's target vector. */
static int using_thread_db; static int using_thread_db;
/* Non-zero if we have to keep this module's target vector active
across re-runs. */
static int keep_thread_db;
/* Non-zero if we have determined the signals used by the threads /* Non-zero if we have determined the signals used by the threads
library. */ library. */
static int thread_signals; static int thread_signals;
@ -673,8 +669,6 @@ thread_db_new_objfile (struct objfile *objfile)
using_thread_db = 0; using_thread_db = 0;
} }
keep_thread_db = 0;
goto quit; goto quit;
} }
@ -703,18 +697,6 @@ thread_db_new_objfile (struct objfile *objfile)
push_target (&thread_db_ops); push_target (&thread_db_ops);
using_thread_db = 1; using_thread_db = 1;
/* If the thread library was detected in the main symbol file
itself, we assume that the program was statically linked
against the thread library and well have to keep this
module's target vector activated until forever... Well, at
least until all symbols have been discarded anyway (see
above). */
if (objfile == symfile_objfile)
{
gdb_assert (proc_handle.pid == 0);
keep_thread_db = 1;
}
/* We can only poke around if there actually is a child process. /* We can only poke around if there actually is a child process.
If there is no child process alive, postpone the steps below If there is no child process alive, postpone the steps below
until one has been created. */ until one has been created. */
@ -1106,12 +1088,8 @@ static void
thread_db_create_inferior (char *exec_file, char *allargs, char **env, thread_db_create_inferior (char *exec_file, char *allargs, char **env,
int from_tty) int from_tty)
{ {
if (!keep_thread_db) unpush_target (&thread_db_ops);
{ using_thread_db = 0;
unpush_target (&thread_db_ops);
using_thread_db = 0;
}
target_beneath->to_create_inferior (exec_file, allargs, env, from_tty); target_beneath->to_create_inferior (exec_file, allargs, env, from_tty);
} }
@ -1141,17 +1119,9 @@ thread_db_mourn_inferior (void)
target_beneath->to_mourn_inferior (); target_beneath->to_mourn_inferior ();
/* Detach thread_db target ops if not dealing with a statically /* Detach thread_db target ops. */
linked threaded program. This allows a corefile to be debugged unpush_target (&thread_db_ops);
after finishing debugging of a threaded program. At present, using_thread_db = 0;
debugging a statically-linked threaded program is broken, but
the check is added below in the event that it is fixed in the
future. */
if (!keep_thread_db)
{
unpush_target (&thread_db_ops);
using_thread_db = 0;
}
} }
static int static int