mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
* solib.c (reload_shared_libraries): Give
inferior a chance to reset solib breakpoint. Reinit frame cache.
This commit is contained in:
parent
14b69f28c0
commit
c8fa6cdda4
@ -1,3 +1,9 @@
|
|||||||
|
2008-03-09 Vladimir Prus <vladimir@codesourcery.com>
|
||||||
|
|
||||||
|
* solib.c (reload_shared_libraries): Give
|
||||||
|
inferior a chance to reset solib breakpoint.
|
||||||
|
Reinit frame cache.
|
||||||
|
|
||||||
2009-03-08 Christopher Faylor <me+cygwin@cgf.cx>
|
2009-03-08 Christopher Faylor <me+cygwin@cgf.cx>
|
||||||
|
|
||||||
* windows-nat.c (dr): Redefine to use largest possible integer which
|
* windows-nat.c (dr): Redefine to use largest possible integer which
|
||||||
|
22
gdb/solib.c
22
gdb/solib.c
@ -1015,6 +1015,28 @@ reload_shared_libraries (char *ignored, int from_tty,
|
|||||||
{
|
{
|
||||||
no_shared_libraries (NULL, from_tty);
|
no_shared_libraries (NULL, from_tty);
|
||||||
solib_add (NULL, from_tty, NULL, auto_solib_add);
|
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
|
||||||
|
solib-absolute-prefix and are setting it right now, then the previous
|
||||||
|
breakpoint address is plain wrong. Second, installing solib hooks
|
||||||
|
also implicitly figures were ld.so is and loads symbols for it.
|
||||||
|
Absent this call, if we've just connected to a target and set
|
||||||
|
solib-absolute-prefix or solib-search-path, we'll lose all information
|
||||||
|
about ld.so. */
|
||||||
|
if (target_has_execution)
|
||||||
|
{
|
||||||
|
#ifdef SOLIB_CREATE_INFERIOR_HOOK
|
||||||
|
SOLIB_CREATE_INFERIOR_HOOK (PIDGET (inferior_ptid));
|
||||||
|
#else
|
||||||
|
solib_create_inferior_hook ();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
/* 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.
|
||||||
|
Reinit frame cache to avoid crashing. */
|
||||||
|
reinit_frame_cache ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user