File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,10 @@ PTBOX_ABI_COUNT: int
1212ALL_ABIS : List [int ]
1313SUPPORTED_ABIS : List [int ]
1414
15+ class ArgAccessor :
16+ def __getitem__ (self , reg : int ) -> int : ...
17+ def __setitem__ (self , reg : int , val : int ) -> None : ...
18+
1519class Debugger :
1620 syscall : int
1721 result : int
@@ -22,6 +26,7 @@ class Debugger:
2226 arg3 : int
2327 arg4 : int
2428 arg5 : int
29+ arg : ArgAccessor
2530
2631 uresult : int
2732 uarg0 : int
@@ -30,6 +35,7 @@ class Debugger:
3035 uarg3 : int
3136 uarg4 : int
3237 uarg5 : int
38+ uarg : ArgAccessor
3339
3440 pid : int
3541 tid : int
Original file line number Diff line number Diff line change @@ -225,6 +225,22 @@ def memory_fd_seal(int fd):
225225
226226cdef class Process
227227
228+ cdef class Debugger
229+
230+ cdef class ArgAccessor:
231+ cdef object base
232+ cdef Debugger debugger
233+
234+ def __cinit__ (self , Debugger debugger , object base ):
235+ self .debugger = debugger
236+ self .base = base
237+
238+ def __getitem__ (self , reg ):
239+ return getattr (' %s%d ' % (self .base, reg), self .debugger)
240+
241+ def __setitem__ (self , reg , val ):
242+ setattr (' %s%d ' % (self .base, reg), self .debugger, val)
243+
228244
229245cdef class Debugger:
230246 cdef pt_debugger * thisptr
@@ -235,6 +251,8 @@ cdef class Debugger:
235251 self .thisptr = new pt_debugger()
236252 self .process = process
237253 self .on_return_callback = {}
254+ self .uarg = ArgAccessor(self , " uarg" )
255+ self .arg = ArgAccessor(self , " arg" )
238256
239257 def __dealloc__ (self ):
240258 del self .thisptr
You can’t perform that action at this time.
0 commit comments