diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-01 00:15:07 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-01 00:15:07 +0000 |
commit | b5aff26825abb88d44d71392f759c0a89e979285 (patch) | |
tree | 45bbd9f8e1796481fc0b2a37c2f3c747d7488418 /gdb/infrun.c | |
parent | 5143c305dd1b9c32cdee77c3d55e19c2e4c4d5ed (diff) | |
download | gdb-b5aff26825abb88d44d71392f759c0a89e979285.zip gdb-b5aff26825abb88d44d71392f759c0a89e979285.tar.gz gdb-b5aff26825abb88d44d71392f759c0a89e979285.tar.bz2 |
* mips-tdep.c (mips_step_skips_delay), config/mips/tm-mips.h
(STEP_SKIPS_DELAY): Added.
* infrun.c (proceed) [STEP_SKIPS_DELAY]: Check for a breakpoint in
the delay slot.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index ef9b826..146621c 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -280,6 +280,15 @@ proceed (addr, siggnal, step) if (breakpoint_here_p (read_pc ())) oneproc = 1; + +#ifdef STEP_SKIPS_DELAY + /* Check breakpoint_here_p first, because breakpoint_here_p is fast + (it just checks internal GDB data structures) and STEP_SKIPS_DELAY + is slow (it needs to read memory from the target). */ + if (breakpoint_here_p (read_pc () + 4) + && STEP_SKIPS_DELAY (read_pc ())) + oneproc = 1; +#endif /* STEP_SKIPS_DELAY */ } else write_pc (addr); |