* breakpoint.c (bpstat_num): Add int *num parameter.
* breakpoint.h (bpstat_num): Likewise. * infcmd.c (continue_command): Adjust to new bpstat_num interface. (program_info): Likewise.
This commit is contained in:
parent
bce7165daa
commit
8671a17bde
@ -1,3 +1,11 @@
|
||||
2007-03-27 Pedro Alves <pedro_alves@portugalmail.pt>
|
||||
|
||||
* breakpoint.c (bpstat_num): Add int *num parameter.
|
||||
* breakpoint.h (bpstat_num): Likewise.
|
||||
* infcmd.c (continue_command): Adjust to new bpstat_num
|
||||
interface.
|
||||
(program_info): Likewise.
|
||||
|
||||
2007-03-27 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* config/sh/tm-sh.h: Remove file.
|
||||
|
@ -2054,28 +2054,30 @@ bpstat_find_step_resume_breakpoint (bpstat bsp)
|
||||
}
|
||||
|
||||
|
||||
/* Return the breakpoint number of the first breakpoint we are stopped
|
||||
/* Put in *NUM the breakpoint number of the first breakpoint we are stopped
|
||||
at. *BSP upon return is a bpstat which points to the remaining
|
||||
breakpoints stopped at (but which is not guaranteed to be good for
|
||||
anything but further calls to bpstat_num).
|
||||
Return 0 if passed a bpstat which does not indicate any breakpoints. */
|
||||
Return 0 if passed a bpstat which does not indicate any breakpoints.
|
||||
Return -1 if stopped at a breakpoint that has been deleted since
|
||||
we set it.
|
||||
Return 1 otherwise. */
|
||||
|
||||
int
|
||||
bpstat_num (bpstat *bsp)
|
||||
bpstat_num (bpstat *bsp, int *num)
|
||||
{
|
||||
struct breakpoint *b;
|
||||
|
||||
if ((*bsp) == NULL)
|
||||
return 0; /* No more breakpoint values */
|
||||
else
|
||||
{
|
||||
b = (*bsp)->breakpoint_at;
|
||||
*bsp = (*bsp)->next;
|
||||
if (b == NULL)
|
||||
return -1; /* breakpoint that's been deleted since */
|
||||
else
|
||||
return b->number; /* We have its number */
|
||||
}
|
||||
|
||||
b = (*bsp)->breakpoint_at;
|
||||
*bsp = (*bsp)->next;
|
||||
if (b == NULL)
|
||||
return -1; /* breakpoint that's been deleted since */
|
||||
|
||||
*num = b->number; /* We have its number */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Modify BS so that the actions will not be performed. */
|
||||
|
@ -562,12 +562,15 @@ extern int bpstat_have_active_hw_watchpoints (void);
|
||||
return means print the frame as well as the source line). */
|
||||
extern enum print_stop_action bpstat_print (bpstat);
|
||||
|
||||
/* Return the breakpoint number of the first breakpoint we are stopped
|
||||
/* Put in *NUM the breakpoint number of the first breakpoint we are stopped
|
||||
at. *BSP upon return is a bpstat which points to the remaining
|
||||
breakpoints stopped at (but which is not guaranteed to be good for
|
||||
anything but further calls to bpstat_num).
|
||||
Return 0 if passed a bpstat which does not indicate any breakpoints. */
|
||||
extern int bpstat_num (bpstat *);
|
||||
Return 0 if passed a bpstat which does not indicate any breakpoints.
|
||||
Return -1 if stopped at a breakpoint that has been deleted since
|
||||
we set it.
|
||||
Return 1 otherwise. */
|
||||
extern int bpstat_num (bpstat *, int *);
|
||||
|
||||
/* Perform actions associated with having stopped at *BSP. Actually, we just
|
||||
use this for breakpoint commands. Perhaps other actions will go here
|
||||
|
41
gdb/infcmd.c
41
gdb/infcmd.c
@ -622,23 +622,27 @@ continue_command (char *proc_count_exp, int from_tty)
|
||||
if (proc_count_exp != NULL)
|
||||
{
|
||||
bpstat bs = stop_bpstat;
|
||||
int num = bpstat_num (&bs);
|
||||
if (num == 0 && from_tty)
|
||||
int num, stat;
|
||||
int stopped = 0;
|
||||
|
||||
while ((stat = bpstat_num (&bs, &num)) != 0)
|
||||
if (stat > 0)
|
||||
{
|
||||
set_ignore_count (num,
|
||||
parse_and_eval_long (proc_count_exp) - 1,
|
||||
from_tty);
|
||||
/* set_ignore_count prints a message ending with a period.
|
||||
So print two spaces before "Continuing.". */
|
||||
if (from_tty)
|
||||
printf_filtered (" ");
|
||||
stopped = 1;
|
||||
}
|
||||
|
||||
if (!stopped && from_tty)
|
||||
{
|
||||
printf_filtered
|
||||
("Not stopped at any breakpoint; argument ignored.\n");
|
||||
}
|
||||
while (num != 0)
|
||||
{
|
||||
set_ignore_count (num,
|
||||
parse_and_eval_long (proc_count_exp) - 1,
|
||||
from_tty);
|
||||
/* set_ignore_count prints a message ending with a period.
|
||||
So print two spaces before "Continuing.". */
|
||||
if (from_tty)
|
||||
printf_filtered (" ");
|
||||
num = bpstat_num (&bs);
|
||||
}
|
||||
}
|
||||
|
||||
if (from_tty)
|
||||
@ -1386,7 +1390,8 @@ static void
|
||||
program_info (char *args, int from_tty)
|
||||
{
|
||||
bpstat bs = stop_bpstat;
|
||||
int num = bpstat_num (&bs);
|
||||
int num;
|
||||
int stat = bpstat_num (&bs, &num);
|
||||
|
||||
if (!target_has_execution)
|
||||
{
|
||||
@ -1399,20 +1404,20 @@ program_info (char *args, int from_tty)
|
||||
hex_string ((unsigned long) stop_pc));
|
||||
if (stop_step)
|
||||
printf_filtered (_("It stopped after being stepped.\n"));
|
||||
else if (num != 0)
|
||||
else if (stat != 0)
|
||||
{
|
||||
/* There may be several breakpoints in the same place, so this
|
||||
isn't as strange as it seems. */
|
||||
while (num != 0)
|
||||
while (stat != 0)
|
||||
{
|
||||
if (num < 0)
|
||||
if (stat < 0)
|
||||
{
|
||||
printf_filtered (_("\
|
||||
It stopped at a breakpoint that has since been deleted.\n"));
|
||||
}
|
||||
else
|
||||
printf_filtered (_("It stopped at breakpoint %d.\n"), num);
|
||||
num = bpstat_num (&bs);
|
||||
stat = bpstat_num (&bs, &num);
|
||||
}
|
||||
}
|
||||
else if (stop_signal != TARGET_SIGNAL_0)
|
||||
|
Loading…
Reference in New Issue
Block a user