@@ -28,8 +28,9 @@ def __init__(self, thread_snapshots, memory):
2828
2929
3030class 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