diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-04-26 16:44:03 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-04-26 16:44:03 +0000 |
commit | 9aa31e91d68c5e49b99fbedf257ef25ad8664944 (patch) | |
tree | dad4ad92dc4a2cfb8a7710b8099d069937c75ea1 | |
parent | 63ddbacf196d20610ad2ffec00b029c9d774c921 (diff) | |
download | gdb-9aa31e91d68c5e49b99fbedf257ef25ad8664944.zip gdb-9aa31e91d68c5e49b99fbedf257ef25ad8664944.tar.gz gdb-9aa31e91d68c5e49b99fbedf257ef25ad8664944.tar.bz2 |
* rs6000-tdep.c (branch_dest): Deal with stepping through system call.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/rs6000-tdep.c | 11 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e1347da..adad303 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Mon Apr 26 07:13:32 1993 Jim Kingdon (kingdon@cygnus.com) + + * rs6000-tdep.c (branch_dest): Deal with stepping through system call. + + * symtab.h, xcoffread.c: Revise linetable sorting comments. + Sun Apr 25 02:32:16 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) * valops.c (value_cast): A cast might also change the object diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 12d3361..e783c1e 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -106,8 +106,15 @@ branch_dest (opcode, instr, pc, safety) dest = read_register (LR_REGNUM) & ~3; else if (ext_op == 528) /* br cond to count reg */ - dest = read_register (CTR_REGNUM) & ~3; - + { + dest = read_register (CTR_REGNUM) & ~3; + + /* If we are about to execute a system call, dest is something + like 0x22fc or 0x3b00. Upon completion the system call + will return to the address in the link register. */ + if (dest < TEXT_SEGMENT_BASE) + dest = read_register (LR_REGNUM) & ~3; + } else return -1; break; |