Skip to content

Commit b5539b0

Browse files
committed
improve register errors
1 parent 03690e0 commit b5539b0

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

lldb/packages/Python/lldbsuite/test/lldbreverse.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ def __init__(self, thread_snapshots, memory):
2828

2929

3030
class RegisterInfo:
31-
def __init__(self, lldb_index, bitsize, little_endian):
31+
def __init__(self, lldb_index, name, bitsize, little_endian):
3232
self.lldb_index = lldb_index
33+
self.name = name
3334
self.bitsize = bitsize
3435
self.little_endian = little_endian
3536

@@ -338,7 +339,11 @@ def restore_snapshot(self, snapshot):
338339
f"P{lldb_index:x}={data};thread:{thread_id:x};"
339340
)
340341
if reply != "OK":
341-
raise ValueError("Can't restore thread register")
342+
try:
343+
reg_name = self.general_purpose_register_info[lldb_index].name
344+
except KeyError:
345+
reg_name = f"with index {lldb_index}"
346+
raise ValueError(f"Can't restore thread register {reg_name}")
342347
if thread_id == snapshot.thread_id:
343348
new_pc = self.get_register(
344349
self.pc_register_info, thread_snapshot.registers
@@ -501,7 +506,9 @@ def ensure_register_info(self):
501506
if not reply or reply[0] == "E":
502507
break
503508
info = {k: v for k, v in self.parse_pairs(reply)}
504-
reg_info = RegisterInfo(lldb_index, int(info["bitsize"]), little_endian)
509+
reg_info = RegisterInfo(
510+
lldb_index, info["name"], int(info["bitsize"]), little_endian
511+
)
505512
if (
506513
info["set"] == "General Purpose Registers"
507514
and not "container-regs" in info

0 commit comments

Comments
 (0)