Add from_tty to solib_create_inferior_hook.
* infcmd.c (post_create_inferior): Move solib_add after
solib_create_inferior_hook. Pass from_tty to
solib_create_inferior_hook. Call solib_add and SOLIB_ADD with
0 from_tty and comment why.
* infrun.c (follow_exec): Pass from_tty solib_create_inferior_hook as 0.
* linux-nat.c (linux_child_follow_fork): Likewise.
* nto-procfs.c (procfs_post_attach, procfs_create_inferior): Likewise.
* solib-darwin.c (darwin_solib_create_inferior_hook): New parameter
from_tty.
* solib-frv.c (frv_solib_create_inferior_hook): Likewise.
* solib-irix.c (irix_solib_create_inferior_hook): Likewise.
* solib-null.c (null_solib_create_inferior_hook): Likewise.
* solib-osf.c (osf_solib_create_inferior_hook): Likewise.
* solib-pa64.c (pa64_solib_create_inferior_hook): Likewise.
* solib-som.c (som_solib_create_inferior_hook): Likewise.
* solib-spu.c (spu_solib_create_inferior_hook): New parameter from_tty.
Pass it to svr4_so_ops.solib_create_inferior_hook.
* solib-sunos.c (sunos_solib_create_inferior_hook): New parameter
from_tty.
* solib-svr4.c (enable_break): New parameter from_tty. Pass it to
solib_add.
(svr4_solib_create_inferior_hook): New parameter from_tty. Pass it to
enable_break.
* solib-target.c (solib_target_solib_create_inferior_hook): New
parameter from_tty.
* solib.c (solib_create_inferior_hook): New parameter from_tty. Pass
it to ops->solib_create_inferior_hook.
(reload_shared_libraries): Pass from_tty to solib_create_inferior_hook.
Move solib_add after solib_create_inferior_hook, call it now with
from_tty as 0. New comment there.
* solib.h (solib_create_inferior_hook): New parameter from_tty.
* solist.h (struct target_so_ops <solib_create_inferior_hook>):
Likewise.
+2010-01-08 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Add from_tty to solib_create_inferior_hook.
+ * infcmd.c (post_create_inferior): Move solib_add after
+ solib_create_inferior_hook. Pass from_tty to
+ solib_create_inferior_hook. Call solib_add and SOLIB_ADD with
+ 0 from_tty and comment why.
+ * infrun.c (follow_exec): Pass from_tty solib_create_inferior_hook as 0.
+ * linux-nat.c (linux_child_follow_fork): Likewise.
+ * nto-procfs.c (procfs_post_attach, procfs_create_inferior): Likewise.
+ * solib-darwin.c (darwin_solib_create_inferior_hook): New parameter
+ from_tty.
+ * solib-frv.c (frv_solib_create_inferior_hook): Likewise.
+ * solib-irix.c (irix_solib_create_inferior_hook): Likewise.
+ * solib-null.c (null_solib_create_inferior_hook): Likewise.
+ * solib-osf.c (osf_solib_create_inferior_hook): Likewise.
+ * solib-pa64.c (pa64_solib_create_inferior_hook): Likewise.
+ * solib-som.c (som_solib_create_inferior_hook): Likewise.
+ * solib-spu.c (spu_solib_create_inferior_hook): New parameter from_tty.
+ Pass it to svr4_so_ops.solib_create_inferior_hook.
+ * solib-sunos.c (sunos_solib_create_inferior_hook): New parameter
+ from_tty.
+ * solib-svr4.c (enable_break): New parameter from_tty. Pass it to
+ solib_add.
+ (svr4_solib_create_inferior_hook): New parameter from_tty. Pass it to
+ enable_break.
+ * solib-target.c (solib_target_solib_create_inferior_hook): New
+ parameter from_tty.
+ * solib.c (solib_create_inferior_hook): New parameter from_tty. Pass
+ it to ops->solib_create_inferior_hook.
+ (reload_shared_libraries): Pass from_tty to solib_create_inferior_hook.
+ Move solib_add after solib_create_inferior_hook, call it now with
+ from_tty as 0. New comment there.
+ * solib.h (solib_create_inferior_hook): New parameter from_tty.
+ * solist.h (struct target_so_ops <solib_create_inferior_hook>):
+ Likewise.
+
2010-01-08 Vladimir Prus <vladimir@codesourcery.com>
Fix multiexec race.
(ada_print_type): Remove support for VAX floats.
* ada-valprint.c (ada_val_print_1): Remove support for VAX floats.
-2010-01-08 jan kratochvil <jan.kratochvil@redhat.com>
+2010-01-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* stabsread.c (read_args): Handle zero arguments.
/* Now that we know the register layout, retrieve current PC. */
stop_pc = regcache_read_pc (get_current_regcache ());
- /* If the solist is global across processes, there's no need to
- refetch it here. */
- if (exec_bfd && !gdbarch_has_global_solist (target_gdbarch))
- {
- /* Sometimes the platform-specific hook loads initial shared
- libraries, and sometimes it doesn't. Try to do so first, so
- that we can add them with the correct value for FROM_TTY.
- If we made all the inferior hook methods consistent,
- this call could be removed. */
-#ifdef SOLIB_ADD
- SOLIB_ADD (NULL, from_tty, target, auto_solib_add);
-#else
- solib_add (NULL, from_tty, target, auto_solib_add);
-#endif
- }
-
if (exec_bfd)
{
/* Create the hooks to handle shared library load and unload
#ifdef SOLIB_CREATE_INFERIOR_HOOK
SOLIB_CREATE_INFERIOR_HOOK (PIDGET (inferior_ptid));
#else
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (from_tty);
+#endif
+ }
+
+ /* If the solist is global across processes, there's no need to
+ refetch it here. */
+ if (exec_bfd && !gdbarch_has_global_solist (target_gdbarch))
+ {
+ /* Sometimes the platform-specific hook loads initial shared
+ libraries, and sometimes it doesn't. If it doesn't FROM_TTY will be
+ incorrectly 0 but such solib targets should be fixed anyway. If we
+ made all the inferior hook methods consistent, this call could be
+ removed. Call it only after the solib target has been initialized by
+ solib_create_inferior_hook. */
+
+#ifdef SOLIB_ADD
+ SOLIB_ADD (NULL, 0, target, auto_solib_add);
+#else
+ solib_add (NULL, 0, target, auto_solib_add);
#endif
}
#ifdef SOLIB_CREATE_INFERIOR_HOOK
SOLIB_CREATE_INFERIOR_HOOK (PIDGET (inferior_ptid));
#else
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (0);
#endif
jit_inferior_created_hook ();
breakpoint. If a "cloned-VM" event was propagated
better throughout the core, this wouldn't be
required. */
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (0);
}
/* Let the thread_db layer learn about this new process. */
shared libraries, and install the solib event breakpoint.
If a "cloned-VM" event was propagated better throughout
the core, this wouldn't be required. */
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (0);
}
/* Let the thread_db layer learn about this new process. */
procfs_post_attach (pid_t pid)
{
if (exec_bfd)
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (0);
}
static ptid_t
if (exec_bfd != NULL
|| (symfile_objfile != NULL && symfile_objfile->obfd != NULL))
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (0);
}
static void
/* Shared library startup support. See documentation in solib-svr4.c */
static void
-darwin_solib_create_inferior_hook (void)
+darwin_solib_create_inferior_hook (int from_tty)
{
struct minimal_symbol *msymbol;
char **bkpt_namep;
*/
static void
-frv_solib_create_inferior_hook (void)
+frv_solib_create_inferior_hook (int from_tty)
{
/* Relocate main executable. */
frv_relocate_main_executable ();
SYNOPSIS
- void solib_create_inferior_hook ()
+ void solib_create_inferior_hook (int from_tty)
DESCRIPTION
*/
static void
-irix_solib_create_inferior_hook (void)
+irix_solib_create_inferior_hook (int from_tty)
{
struct inferior *inf;
struct thread_info *tp;
}
static void
-null_solib_create_inferior_hook (void)
+null_solib_create_inferior_hook (int from_tty)
{
}
Also, what if child has exit()ed? Must exit loop somehow. */
static void
-osf_solib_create_inferior_hook (void)
+osf_solib_create_inferior_hook (int from_tty)
{
struct inferior *inf;
struct thread_info *tp;
with shared libraries mapped shareable. */
static void
-pa64_solib_create_inferior_hook (void)
+pa64_solib_create_inferior_hook (int from_tty)
{
struct minimal_symbol *msymbol;
unsigned int dld_flags, status;
means running until the "_start" is called. */
static void
-som_solib_create_inferior_hook (void)
+som_solib_create_inferior_hook (int from_tty)
{
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
struct minimal_symbol *msymbol;
/* Create inferior hook. */
static void
-spu_solib_create_inferior_hook (void)
+spu_solib_create_inferior_hook (int from_tty)
{
/* Remove all previously installed solib breakpoints. Both the SVR4
code and us will re-install all required breakpoints. */
}
/* Call SVR4 hook -- this will re-insert the SVR4 solib breakpoints. */
- svr4_so_ops.solib_create_inferior_hook ();
+ svr4_so_ops.solib_create_inferior_hook (from_tty);
/* If the inferior is statically linked against libspe, we need to install
our own solib breakpoint right now. Otherwise, it will be installed by
*/
static void
-sunos_solib_create_inferior_hook (void)
+sunos_solib_create_inferior_hook (int from_tty)
{
struct thread_info *tp;
struct inferior *inf;
*/
static int
-enable_break (struct svr4_info *info)
+enable_break (struct svr4_info *info, int from_tty)
{
struct minimal_symbol *msymbol;
char **bkpt_namep;
mean r_brk has already been relocated. Assume the dynamic linker
is the object containing r_brk. */
- solib_add (NULL, 0, ¤t_target, auto_solib_add);
+ solib_add (NULL, from_tty, ¤t_target, auto_solib_add);
sym_addr = 0;
if (info->debug_base && solib_svr4_r_map (info) != 0)
sym_addr = solib_svr4_r_brk (info);
info->debug_loader_name = xstrdup (interp_name);
info->debug_loader_offset_p = 1;
info->debug_loader_offset = load_addr;
- solib_add (NULL, 0, ¤t_target, auto_solib_add);
+ solib_add (NULL, from_tty, ¤t_target, auto_solib_add);
}
/* Record the relocated start and end address of the dynamic linker
SYNOPSIS
- void svr4_solib_create_inferior_hook ()
+ void svr4_solib_create_inferior_hook (int from_tty)
DESCRIPTION
*/
static void
-svr4_solib_create_inferior_hook (void)
+svr4_solib_create_inferior_hook (int from_tty)
{
struct inferior *inf;
struct thread_info *tp;
if (!svr4_have_link_map_offsets ())
return;
- if (!enable_break (info))
+ if (!enable_break (info, from_tty))
return;
#if defined(_SCO_DS)
}
static void
-solib_target_solib_create_inferior_hook (void)
+solib_target_solib_create_inferior_hook (int from_tty)
{
/* Nothing needed. */
}
SYNOPSIS
- void solib_create_inferior_hook ()
+ void solib_create_inferior_hook (int from_tty)
DESCRIPTION
SOLIB_CREATE_INFERIOR_HOOK. */
void
-solib_create_inferior_hook (void)
+solib_create_inferior_hook (int from_tty)
{
struct target_so_ops *ops = solib_ops (target_gdbarch);
- ops->solib_create_inferior_hook();
+ ops->solib_create_inferior_hook (from_tty);
}
/* GLOBAL FUNCTION
struct cmd_list_element *e)
{
no_shared_libraries (NULL, from_tty);
- solib_add (NULL, from_tty, NULL, auto_solib_add);
/* Creating inferior hooks here has two purposes. First, if we reload
shared libraries then the address of solib breakpoint we've computed
previously might be no longer valid. For example, if we forgot to set
#ifdef SOLIB_CREATE_INFERIOR_HOOK
SOLIB_CREATE_INFERIOR_HOOK (PIDGET (inferior_ptid));
#else
- solib_create_inferior_hook ();
+ solib_create_inferior_hook (from_tty);
#endif
}
+
+ /* Sometimes the platform-specific hook loads initial shared
+ libraries, and sometimes it doesn't. If it doesn't FROM_TTY will be
+ incorrectly 0 but such solib targets should be fixed anyway. If we
+ made all the inferior hook methods consistent, this call could be
+ removed. Call it only after the solib target has been initialized by
+ solib_create_inferior_hook. */
+
+ solib_add (NULL, 0, NULL, auto_solib_add);
+
/* We have unloaded and then reloaded debug info for all shared libraries.
However, frames may still reference them, for example a frame's
unwinder might still point of DWARF FDE structures that are now freed.
addresses to which they are linked, and sufficient information to
read in their symbols at a later time. */
-extern void solib_create_inferior_hook (void);
+extern void solib_create_inferior_hook (int from_tty);
/* If ADDR lies in a shared library, return its name. */
void (*clear_solib) (void);
/* Target dependent code to run after child process fork. */
- void (*solib_create_inferior_hook) (void);
+ void (*solib_create_inferior_hook) (int from_tty);
/* Do additional symbol handling, lookup, etc. after symbols
for a shared object have been loaded. */