mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
2012-01-24 Pedro Alves <palves@redhat.com>
* breakpoint.c (bpstat_stop_status): Moving clearing print_it outside `bs->stop' block. (bpstat_what): Rework bp_shlib_event handling. (internal_bkpt_check_status): If the breakpoint is a bp_shlib_event, then set bs->stop and bs->print if stop_on_solib_events is set.
This commit is contained in:
parent
53fe178334
commit
a9b3a50fba
@ -1,3 +1,12 @@
|
||||
2012-01-24 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* breakpoint.c (bpstat_stop_status): Moving clearing print_it
|
||||
outside `bs->stop' block.
|
||||
(bpstat_what): Rework bp_shlib_event handling.
|
||||
(internal_bkpt_check_status): If the breakpoint is a
|
||||
bp_shlib_event, then set bs->stop and bs->print if
|
||||
stop_on_solib_events is set.
|
||||
|
||||
2012-01-24 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
Delete #if 0'd out code.
|
||||
|
@ -4258,10 +4258,12 @@ bpstat_stop_status (struct address_space *aspace,
|
||||
bs->print = 0;
|
||||
}
|
||||
|
||||
/* Print nothing for this entry if we don't stop or don't print. */
|
||||
if (bs->stop == 0 || bs->print == 0)
|
||||
bs->print_it = print_it_noop;
|
||||
}
|
||||
|
||||
/* Print nothing for this entry if we don't stop or don't
|
||||
print. */
|
||||
if (!bs->stop || !bs->print)
|
||||
bs->print_it = print_it_noop;
|
||||
}
|
||||
|
||||
/* If we aren't stopping, the value of some hardware watchpoint may
|
||||
@ -4342,6 +4344,9 @@ bpstat_what (bpstat bs_head)
|
||||
else
|
||||
bptype = bs->breakpoint_at->type;
|
||||
|
||||
if (bptype == bp_shlib_event)
|
||||
shlib_event = 1;
|
||||
|
||||
switch (bptype)
|
||||
{
|
||||
case bp_none:
|
||||
@ -4350,6 +4355,7 @@ bpstat_what (bpstat bs_head)
|
||||
case bp_hardware_breakpoint:
|
||||
case bp_until:
|
||||
case bp_finish:
|
||||
case bp_shlib_event:
|
||||
if (bs->stop)
|
||||
{
|
||||
if (bs->print)
|
||||
@ -4427,18 +4433,6 @@ bpstat_what (bpstat bs_head)
|
||||
This requires no further action. */
|
||||
}
|
||||
break;
|
||||
case bp_shlib_event:
|
||||
shlib_event = 1;
|
||||
|
||||
/* If requested, stop when the dynamic linker notifies GDB
|
||||
of events. This allows the user to get control and place
|
||||
breakpoints in initializer routines for dynamically
|
||||
loaded objects (among other things). */
|
||||
if (stop_on_solib_events)
|
||||
this_action = BPSTAT_WHAT_STOP_NOISY;
|
||||
else
|
||||
this_action = BPSTAT_WHAT_SINGLE;
|
||||
break;
|
||||
case bp_jit_event:
|
||||
jit_event = 1;
|
||||
this_action = BPSTAT_WHAT_SINGLE;
|
||||
@ -11145,8 +11139,17 @@ internal_bkpt_re_set (struct breakpoint *b)
|
||||
static void
|
||||
internal_bkpt_check_status (bpstat bs)
|
||||
{
|
||||
/* We do not stop for these. */
|
||||
bs->stop = 0;
|
||||
if (bs->breakpoint_at->type == bp_shlib_event)
|
||||
{
|
||||
/* If requested, stop when the dynamic linker notifies GDB of
|
||||
events. This allows the user to get control and place
|
||||
breakpoints in initializer routines for dynamically loaded
|
||||
objects (among other things). */
|
||||
bs->stop = stop_on_solib_events;
|
||||
bs->print = stop_on_solib_events;
|
||||
}
|
||||
else
|
||||
bs->stop = 0;
|
||||
}
|
||||
|
||||
static enum print_stop_action
|
||||
|
Loading…
Reference in New Issue
Block a user