X-Git-Url: https://git.libre-soc.org/?p=riscv-tests.git;a=blobdiff_plain;f=debug%2Fgdbserver.py;h=851644b0e586c9a686e2428ee3ca309f8797d025;hp=2aa589a079401b2a32373b585991155f62e18fc0;hb=55d31b6f933bda107a399fdd169bd01a7ea5da6c;hpb=83e90dd49da860c4af50325dec13355abe5386bb diff --git a/debug/gdbserver.py b/debug/gdbserver.py index 2aa589a..851644b 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -393,6 +393,14 @@ class TriggerTest(DeleteServer): self.assertIn("Breakpoint", output) self.assertIn("_exit", output) + def test_execute_immediate(self): + """Test an execute breakpoint on the first instruction executed out of + debug mode.""" + main = self.gdb.p("$pc") + self.gdb.command("hbreak *0x%x" % (main + 4)) + self.gdb.c() + self.assertEqual(self.gdb.p("$pc"), main+4) + def test_load_address(self): self.gdb.command("rwatch *((&data)+1)"); output = self.gdb.c() @@ -401,6 +409,15 @@ class TriggerTest(DeleteServer): self.gdb.p("(&data)+1")) self.exit() + def test_load_address_immediate(self): + """Test a load address breakpoint on the first instruction executed out + of debug mode.""" + write_loop = self.gdb.p("&write_loop") + self.gdb.command("rwatch data"); + self.gdb.c() + self.assertEqual(self.gdb.p("$pc"), write_loop) + self.assertEqual(self.gdb.p("$a0"), self.gdb.p("(&data)+1")) + def test_store_address(self): self.gdb.command("watch *((&data)+3)"); output = self.gdb.c()