Lines Matching refs:self
35 def __init__(self, thr_obj, cputype, cpusubtype): argument
37 self.thread = thr_obj
38 self.registerset = GetRegisterSetForCPU(cputype, cpusubtype)
39 self.thread_id = unsigned(self.thread.thread_id)
40 self.is64Bit = bool(cputype & 0x01000000)
42 if self.is64Bit:
44 self.reg_type = "x86_64"
45 self.saved_state = Cast(self.thread.machine.iss, 'x86_saved_state_t *').uss.ss_64
47 self.reg_type = "arm64"
48 self.saved_state = self.thread.machine.upcb.uss.ss_64
51 self.reg_type = "i386"
52 self.saved_state = Cast(self.thread.machine.iss, 'x86_saved_state_t *').uss.ss_32
54 self.reg_type = "arm"
55 self.saved_state = self.thread.machine.contextData.ss.uss.ss_32
57 self.reg_type = "arm64"
58 self.saved_state = self.thread.machine.upcb.uss.ss_64
61 % (self.thread_id, self.reg_type, cputype))
63 def getRegisterValueByName(self, name): argument
64 if self.reg_type == 'arm64':
66 return unsigned(getattr(self.saved_state, 'x')[int(name.strip('x'))])
68 return unsigned(getattr(self.saved_state, name))
70 if self.reg_type == "x86_64":
72 return unsigned(getattr(self.saved_state.isf, name))
73 return unsigned(getattr(self.saved_state, name))
75 if self.reg_type == "arm":
77 retval = unsigned(getattr(self.saved_state, 'r')[int(name.strip('r'))])
79 retval = unsigned(getattr(self.saved_state, name))
84 def getName(self): argument
85 return str(self.thread_id)
87 def getRegisterData(self, reg_num): argument
89 if reg_num < 0 or reg_num >= len(self.registerset):
90 … logging.warning("regnum %d is not defined for thread_id 0x%x" % (reg_num, self.thread_id))
92 return self.getRegisterValueByName(self.registerset[reg_num]['name'])
97 def __init__(self, task): argument
98 self.task = task
99 self.proc = GetProcFromTask(task)
100 self.cache = {}
101 if self.proc is None:
111 self.cputype = unsigned(self.proc.p_cputype)
112 self.cpusubtype = unsigned(self.proc.p_cpusubtype)
114 super().__init__(self.cputype, self.cpusubtype, ptrsize)
115 …ize:%d cputype:0x%x cpusubtype:0x%x" % (hex(self.proc), int(dataregisters64bit), ptrsize, self.cpu…
116 self.proc_platform = int(GetProcPlatform(self.proc))
117 if self.proc_platform == xnudefines.P_PLATFORM_MACOS:
118 self.hinfo['ostype'] = 'macosx'
119 elif self.proc_platform == xnudefines.P_PLATFORM_WATCHOS:
120 self.hinfo['ostype'] = 'watchos'
121 elif self.proc_platform == xnudefines.P_PLATFORM_TVOS:
122 self.hinfo['ostype'] = 'tvos'
124 self.hinfo['ostype'] = 'ios'
125 dbg_message += " ostype:%s" % self.hinfo['ostype']
129 self.hinfo['addressing_bits'] = addressing_bits
132 self.registerset = GetRegisterSetForCPU(self.cputype, self.cpusubtype)
134 self.threads = {}
135 self.threads_ids_list = []
138 … self.threads[unsigned(thval.thread_id)] = UserThreadObject(thval, self.cputype, self.cpusubtype)
139 self.threads_ids_list.append(unsigned(thval.thread_id))
141 def getRegisterDataForThread(self, th_id, reg_num): argument
142 if th_id not in self.threads:
145 if reg_num < 0 or reg_num >= len(self.registerset):
148 value = self.threads[th_id].getRegisterData(reg_num)
149 return self.encodeRegisterData(value, bytesize=(self.registerset[reg_num]['bitsize'] // 8))
151 def getRegisterCombinedDataForThread(self, th_id): argument
152 if th_id not in self.threads:
155 cur_thread = self.threads[th_id]
156 retval = 'thread:%s;name:%s;' % (self.encodeThreadID(th_id), cur_thread.getName())
158 for rinfo in self.registerset:
162 … value_endian_correct_str = self.encodeRegisterData(value, bytesize=(rinfo['bitsize'] // 8))
167 def getThreadStopInfo(self, th_id): argument
168 if th_id not in self.threads:
171 …return 'T02' + self.getRegisterCombinedDataForThread(th_id) + 'threads:' + self.getThreadsInfo()+'…
173 def getRegisterInfo(self, regnum): argument
176 if regnum >= len(self.registerset):
180 rinfo = self.registerset[regnum]
190 def getProcessInfo(self): argument
195 pinfo['pid'] = "%x" % (GetProcPIDForTask(self.task))
196 pinfo['parent-pid'] = "%x" % (unsigned(self.proc.p_ppid))
197 pinfo['ptrsize'] = str(self.ptrsize)
199 pinfo['cputype'] = "%x" % self.cputype
200 pinfo['cpusubtype'] = "%x" % self.cpusubtype
201 pinfo['real-uid'] = "%x" % (unsigned(self.proc.p_ruid))
202 pinfo['real-gid'] = "%x" % (unsigned(self.proc.p_rgid))
210 def readMemory(self, address, size): argument
211 cache_key = "{}-{}-{}".format(hex(self.task), hex(address), size)
212 cache_data = self.cache.get(cache_key, None)
214 return self.encodeByteString(cache_data)
215 data = GetUserDataAsString(self.task, address, size)
217 …logging.error("Failed to read memory task:{: <#018x} {: <#018x} {:d}".format(self.task, address, s…
219 self.cache[cache_key] = data
220 return self.encodeByteString(data)
222 def getSharedLibInfoAddress(self): argument
223 return unsigned(self.task.all_image_info_addr)