projects
/
riscv-tests.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3a5ca22
)
Tolerate remotes that return memory read errors.
author
Tim Newsome
<tim@sifive.com>
Fri, 30 Sep 2016 19:11:03 +0000
(12:11 -0700)
committer
Tim Newsome
<tim@sifive.com>
Fri, 30 Sep 2016 19:11:03 +0000
(12:11 -0700)
debug/testlib.py
patch
|
blob
|
history
diff --git
a/debug/testlib.py
b/debug/testlib.py
index 987d71e511e0c11549c820fc81537d4b39123e47..8b799e755c411e216cc829b8fda74cdd3e0b8f6f 100644
(file)
--- a/
debug/testlib.py
+++ b/
debug/testlib.py
@@
-1,4
+1,5
@@
import os.path
import os.path
+import re
import shlex
import subprocess
import time
import shlex
import subprocess
import time
@@
-143,6
+144,11
@@
class Openocd(object):
except OSError:
pass
except OSError:
pass
+class CannotAccess(Exception):
+ def __init__(self, address):
+ Exception.__init__(self)
+ self.address = address
+
class Gdb(object):
def __init__(self,
cmd=os.path.expandvars("$RISCV/bin/riscv64-unknown-elf-gdb")):
class Gdb(object):
def __init__(self,
cmd=os.path.expandvars("$RISCV/bin/riscv64-unknown-elf-gdb")):
@@
-187,6
+193,9
@@
class Gdb(object):
def p(self, obj):
output = self.command("p/x %s" % obj)
def p(self, obj):
output = self.command("p/x %s" % obj)
+ m = re.search("Cannot access memory at address (0x[0-9a-f]+)", output)
+ if m:
+ raise CannotAccess(int(m.group(1), 0))
value = int(output.split('=')[-1].strip(), 0)
return value
value = int(output.split('=')[-1].strip(), 0)
return value
@@
-197,7
+206,6
@@
class Gdb(object):
def stepi(self):
output = self.command("stepi")
def stepi(self):
output = self.command("stepi")
- assert "Cannot" not in output
return output
def load(self):
return output
def load(self):