Beispiel #1
0
 def _stopTrace(self):
     self.startTraceAct.setEnabled(True)
     self.stopTraceAct.setEnabled(False)
     p = ecmd.EcmdPacket(XMONO_ID_FUNC_TRACE_STOP, "")
     self._ecmd.sendPacket(p)
     self.log.d(u"send packet id = {0}".format(p.id));
     self.ui.funcGroupBox.setTitle (u"暂无跟踪结果...")
Beispiel #2
0
 def _startTrace(self):
     self._traceFuncCntDict.clear()
     self._clearFuncCntTableWidget()
     self.ui.funcGroupBox.setTitle (u"正在跟踪...")
     self.startTraceAct.setEnabled(False)
     self.stopTraceAct.setEnabled(True)
     p = ecmd.EcmdPacket(XMONO_ID_FUNC_TRACE_START, "")
     self._ecmd.sendPacket(p)
     self.log.d(u"send packet id = {0}".format(p.id));
Beispiel #3
0
 def _disasmMethod(self, s):
     s = str(s)
     p = "\[(.*)\].*\[(.*)\]"
     r = re.search(p, s)
     if r == None:
         self.log.e(u"无法从{0}中提取需要的信息".format(s))
         return
     g = r.groups()
     req = xmono_pb2.DisasmMethodReq()
     req.method_token = int(g[1], 16)
     req.image_name = g[0]
     pkg = ecmd.EcmdPacket(XMONO_ID_DISASM_METHOD_REP, req.SerializeToString())
     self._ecmd.sendPacket(pkg)
Beispiel #4
0
 def _traceMethod(self, s, sw):
     s = str(s)
     p = "\[(.*)\].*\[(.*)\]"
     r = re.search(p, s)
     if r == None:
         self.log.e(u"无法从{0}中提取需要的信息".format(s))
         return
     g = r.groups()
     req = xmono_pb2.StackTraceReq()
     req.image_name = g[0]
     req.method_token = int(g[1], 16)
     if sw:
         pck_id = XMONO_ID_STACK_TRACE_REP
     else:
         pck_id = XMONO_ID_UNSTACK_TRACE_REP
     pkg = ecmd.EcmdPacket(pck_id, req.SerializeToString())
     self._ecmd.sendPacket(pkg)
Beispiel #5
0
 def _replaceMethod(self, iname, token, t):
     code = t[0]
     ex = t[1]
     req = xmono_pb2.ReplaceMethodReq()
     req.domain_id = 0
     req.image_name = str(iname)
     req.method_token = token
     req.new_code = code
     if (len(ex.keys()) > 0):
         keys = ex.keys()
         keys.sort()
         for k in keys:
             e = req.ex.add()
             e.index = k
             e.try_offset = ex[k].try_offset
             e.try_len = ex[k].try_len
             e.handler_offset = ex[k].handler_offset
             e.handler_len = ex[k].handler_len
     pkg = ecmd.EcmdPacket(XMONO_ID_REPLACE_METHOD_REP, req.SerializeToString())
     self._ecmd.sendPacket(pkg)
     self.log.d(u"_replaceMethod over")
Beispiel #6
0
 def _execLuaCode(self, code):
     req = xmono_pb2.LuaExecReq()
     req.lua_code = code
     pkg = ecmd.EcmdPacket(XMONO_ID_LUA_EXEC_REP, req.SerializeToString())
     self._ecmd.sendPacket(pkg)
Beispiel #7
0
 def _listDomain(self):
     pkg = ecmd.EcmdPacket(XMONO_ID_LIST_DOMAIN_REP, "")
     self._ecmd.sendPacket(pkg)