forked from Imagelibrary/binutils-gdb
gdb: add program_space parameter to disable_breakpoints_in_shlibs
Make the current_program_space reference bubble up one level. Change-Id: Ide917aa306bff1872d961244901d79f65d2da62e Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
committed by
Simon Marchi
parent
f592870204
commit
85e8a786f4
@@ -7972,11 +7972,10 @@ create_and_insert_solib_event_breakpoint (struct gdbarch *gdbarch, CORE_ADDR add
|
|||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Disable any breakpoints that are on code in shared libraries. Only
|
/* See breakpoint.h. */
|
||||||
apply to enabled breakpoints, disabled ones can just stay disabled. */
|
|
||||||
|
|
||||||
void
|
void
|
||||||
disable_breakpoints_in_shlibs (void)
|
disable_breakpoints_in_shlibs (program_space *pspace)
|
||||||
{
|
{
|
||||||
for (bp_location *loc : all_bp_locations ())
|
for (bp_location *loc : all_bp_locations ())
|
||||||
{
|
{
|
||||||
@@ -7992,7 +7991,7 @@ disable_breakpoints_in_shlibs (void)
|
|||||||
|| (b->type == bp_jit_event)
|
|| (b->type == bp_jit_event)
|
||||||
|| (b->type == bp_hardware_breakpoint)
|
|| (b->type == bp_hardware_breakpoint)
|
||||||
|| (is_tracepoint (b)))
|
|| (is_tracepoint (b)))
|
||||||
&& loc->pspace == current_program_space
|
&& loc->pspace == pspace
|
||||||
&& !loc->shlib_disabled
|
&& !loc->shlib_disabled
|
||||||
&& solib_name_from_address (loc->pspace, loc->address)
|
&& solib_name_from_address (loc->pspace, loc->address)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1802,7 +1802,10 @@ extern void remove_solib_event_breakpoints (void);
|
|||||||
delete at next stop disposition. */
|
delete at next stop disposition. */
|
||||||
extern void remove_solib_event_breakpoints_at_next_stop (void);
|
extern void remove_solib_event_breakpoints_at_next_stop (void);
|
||||||
|
|
||||||
extern void disable_breakpoints_in_shlibs (void);
|
/* Disable any breakpoints that are on code in shared libraries in PSPACE.
|
||||||
|
Only apply to enabled breakpoints, disabled ones can just stay disabled. */
|
||||||
|
|
||||||
|
extern void disable_breakpoints_in_shlibs (program_space *pspace);
|
||||||
|
|
||||||
/* This function returns true if B is a catchpoint. */
|
/* This function returns true if B is a catchpoint. */
|
||||||
|
|
||||||
|
|||||||
@@ -1187,7 +1187,7 @@ clear_solib (void)
|
|||||||
{
|
{
|
||||||
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
|
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
|
||||||
|
|
||||||
disable_breakpoints_in_shlibs ();
|
disable_breakpoints_in_shlibs (current_program_space);
|
||||||
|
|
||||||
current_program_space->so_list.clear_and_dispose ([] (solib *so) {
|
current_program_space->so_list.clear_and_dispose ([] (solib *so) {
|
||||||
notify_solib_unloaded (current_program_space, *so);
|
notify_solib_unloaded (current_program_space, *so);
|
||||||
|
|||||||
@@ -1906,7 +1906,7 @@ windows_nat_target::do_initial_windows_stuff (DWORD pid, bool attaching)
|
|||||||
inf = current_inferior ();
|
inf = current_inferior ();
|
||||||
if (!inf->target_is_pushed (this))
|
if (!inf->target_is_pushed (this))
|
||||||
inf->push_target (this);
|
inf->push_target (this);
|
||||||
disable_breakpoints_in_shlibs ();
|
disable_breakpoints_in_shlibs (current_program_space);
|
||||||
windows_clear_solib ();
|
windows_clear_solib ();
|
||||||
clear_proceed_status (0);
|
clear_proceed_status (0);
|
||||||
init_wait_for_inferior ();
|
init_wait_for_inferior ();
|
||||||
|
|||||||
Reference in New Issue
Block a user