Пример #1
0
 def _recvStackTrace(self, bpInfo, tid):
     ctxt = self.sess.ctxt
     l = []
     tcObj  = ctxt.objpool(ThreadContext,tid,self.sess)
     framList = tcObj.frams()
     bGetvaule = True
     for  fram in framList:
         fId = fram[0]
         loc = fram[1]
         args = []
         clsObj = ctxt.objpool(ClassType,loc.rtId,self.sess)
         clsName = clsObj.name
         funcName = clsObj.getMethodName(loc.mId)
         methObj = ctxt.objpool(MethodContext,loc.rtId,loc.mId,self.sess)
         parfunc = funcName[0]+TraceReader.jniparse(funcName[1])
         funcFullName = '@'.join([clsName,parfunc])
         if cmp(funcFullName,"com/android/internal/os/ZygoteInit$MethodAndArgsCaller@run()") == 0:
             bGetvaule = False
         if bGetvaule:
             framObj = ctxt.objpool(FrameInfo,fId,loc,tid,self.sess)
             args = framObj.GetValues()
         l.append((funcFullName,loc.idx,args))
     tcObj.resume()
     self.stackTraceWindow.addTraceResult(l)
Пример #2
0
    def _traceCntHandle(self, reader):
        sort = 1
        for m in reader.callInfo:
            if m["method_action"]:
                try:
                    method_info = reader.funcData[m["method_id"]]
                except:
                    print m["method_id"]
                    continue
                funcName = method_info["method_name"]
                className = method_info["class_name"]
                jniName = method_info["jni"]
                parfunc = funcName+TraceReader.jniparse(jniName)
                fullFuncName = '@'.join([className,parfunc])

                if fullFuncName in self._traceFuncCntDict.keys():
                    data = self._traceFuncCntDict[fullFuncName]
                    callCnt = data[0]
                    callCnt += 1
                    self._traceFuncCntDict[fullFuncName] = (callCnt,data[1],data[2])
                else:
                    self._traceFuncCntDict[fullFuncName] = (1, sort,m["method_id"])
                    sort += 1
        self._funcTraceCntFilteShow()