diff options
author | Tim Newsome <tim@sifive.com> | 2022-12-28 16:49:13 -0800 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2022-12-29 10:55:18 -0800 |
commit | cbe0dd1405cd2f33ef1cbbc67eda73bfe65d067e (patch) | |
tree | c372611f94c66180c6157c1fc4b470d47c390b5f /debug/gdbserver.py | |
parent | 48491dadafcd59442c5bf22603fb0a7f1c589cb9 (diff) | |
download | riscv-tests-cbe0dd1405cd2f33ef1cbbc67eda73bfe65d067e.zip riscv-tests-cbe0dd1405cd2f33ef1cbbc67eda73bfe65d067e.tar.gz riscv-tests-cbe0dd1405cd2f33ef1cbbc67eda73bfe65d067e.tar.bz2 |
debug: Add etrigger test.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-x | debug/gdbserver.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index af8ddcf..1ffb15f 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -1953,6 +1953,25 @@ class StepThread2Test(GdbTest): # GDB's conception of the current thread assertEqual(before, after) +class EtriggerTest(DebugTest): + def setup(self): + DebugTest.setup(self) + self.gdb.b("main:start") + self.gdb.c() + self.gdb.b("handle_trap") + + def test(self): + # Set trigger on Load access fault + self.gdb.command("monitor riscv etrigger set m 0x20") + # Set fox to a null pointer so we'll get a load access exception later. + self.gdb.p("fox=(char*)0") + output = self.gdb.c() + # We should not be at handle_trap + assertNotIn("handle_trap", output) + # Instead, we should have hit a breakpoint at trap_entry, which is the + # actual exception handler. + assertIn("breakpoint", output) + assertIn("trap_entry", self.gdb.where()) parsed = None def main(): |