X-Git-Url: https://git.libre-soc.org/?p=riscv-tests.git;a=blobdiff_plain;f=debug%2Fgdbserver.py;h=d2508533e4866b07e9e00c69584a19bf4ee5db51;hp=f7d8d2ebfb6a83cfed233870b00b34eb25b1f097;hb=bc2dac07529b05e438ab93d8fcbc495741675d32;hpb=7c9510e7a7e224ee3d51ebe736a58f81017a71a0 diff --git a/debug/gdbserver.py b/debug/gdbserver.py index f7d8d2e..d250853 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -157,7 +157,11 @@ class InstantHaltTest(DeleteServer): class DebugTest(DeleteServer): def setUp(self): - self.binary = target.compile("programs/debug.c", "programs/checksum.c") + # Include malloc so that gdb can make function calls. I suspect this + # malloc will silently blow through the memory set aside for it, so be + # careful. + self.binary = target.compile("programs/debug.c", "programs/checksum.c", + "programs/tiny-malloc.c", "-DDEFINE_MALLOC", "-DDEFINE_FREE") self.server = target.server() self.gdb = testlib.Gdb() self.gdb.command("file %s" % self.binary) @@ -173,6 +177,12 @@ class DebugTest(DeleteServer): # Use a0 until gdb can resolve "status" self.assertEqual(self.gdb.p("$a0") & 0xffffffff, 0xc86455d4) + def test_function_call(self): + text = "Howdy, Earth!" + gdb_length = self.gdb.p('strlen("%s")' % text) + self.assertEqual(gdb_length, len(text)) + self.exit() + def test_turbostep(self): """Single step a bunch of times.""" self.gdb.command("p i=0");