diff options
author | Tim Newsome <tim@sifive.com> | 2017-07-20 20:43:18 -0700 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2017-07-20 20:43:18 -0700 |
commit | e9de1c77dda6c191cf871d1ad2b43448e83077b7 (patch) | |
tree | b4d9817c7d539a69d1ac765eb6781a42f25d713e /debug/gdbserver.py | |
parent | 8ec0e8c02d1b1db0112c8564888f2d8dd88cbe15 (diff) | |
download | riscv-tests-e9de1c77dda6c191cf871d1ad2b43448e83077b7.zip riscv-tests-e9de1c77dda6c191cf871d1ad2b43448e83077b7.tar.gz riscv-tests-e9de1c77dda6c191cf871d1ad2b43448e83077b7.tar.bz2 |
Add back code to clean up triggers in entry.S
Then for targets that can't handle this because they don't implement
hmode, add a target setting that allows that to be specified.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-x | debug/gdbserver.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index f6c61c3..80985fd 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -329,6 +329,12 @@ class Hwbp1(DebugTest): if self.target.instruction_hardware_breakpoint_count < 1: return 'not_applicable' + if not self.target.honors_tdata1_hmode: + # Run to main before setting the breakpoint, because startup code + # will otherwise clear the trigger that we set. + self.gdb.b("main") + self.gdb.c() + self.gdb.hbreak("rot13") # The breakpoint should be hit exactly 2 times. for _ in range(2): @@ -560,6 +566,9 @@ class TriggerStoreAddressInstant(TriggerTest): assertEqual(self.gdb.p("$a0"), self.gdb.p("&data")) class TriggerDmode(TriggerTest): + def early_applicable(self): + return self.target.honors_tdata1_hmode + def check_triggers(self, tdata1_lsbs, tdata2): dmode = 1 << (self.target.xlen-5) |