def searchNullWords(self): self.nullWords = QtGui.QGraphicsItemGroup(scene=self.scene) log.info('search %s mapping for null words' % (self.mapping_name)) found = 0 tmpnull = [] start = self.mapping.start searcher = signature.NullSearcher(self.mapping) for vaddr in searcher: offset = vaddr - start tmpnull.append(offset / searcher.WORDSIZE) # filter and regroup null word by bunches nb = 0 should = 0 for k, g in itertools.groupby(enumerate(tmpnull), lambda (i, x): i - x): rang = [v * 4 for v in map(operator.itemgetter(1), g) ] # still not getting lambdas.... # add an structure of len(range)*4 bytes self.nullWords.addToGroup( widgets.Structure(rang[0], Dummy(4 * len(rang), value=0), scene=self.scene, color=QtCore.Qt.gray)) log.debug("Adding a zero struct of %d len" % (len(rang))) nb += 1 should += len(rang)
def searchNullWords(self): self.nullWords = QtGui.QGraphicsItemGroup(scene=self.scene) log.info('search %s mapping for null words' % (self.mapping_name)) found = 0 tmpnull = [] start = self.mapping.start searcher = searcher.NullSearcher(self.mapping) for vaddr in searcher: offset = vaddr - start tmpnull.append(offset / searcher.WORDSIZE) # filter and regroup null word by bunches nb = 0 should = 0 for k, g in itertools.groupby(enumerate(tmpnull), lambda i_x: i_x[0] - i_x[1]): # still not getting lambdas.... rang = [v * 4 for v in map(operator.itemgetter(1), g)] # add an structure of len(range)*4 bytes self.nullWords.addToGroup( widgets.Structure(rang[0], Dummy(4 * len(rang), value=0), scene=self.scene, color=QtCore.Qt.gray)) log.debug("Adding a zero struct of %d len" % (len(rang))) nb += 1 should += len(rang) log.debug('Created %d qrect instead of %d words' % (nb, should)) self.scene.addItem(self.nullWords) self.nullWords.hide() self.nullWords.setEnabled(False) self.nullWords.setZValue(1) # zValue has to be > 0 # still not letting me trough the boundingRect self.nullWords.setToolTip('Null value words') return
def show_structures_allocated(self, context): self.allocated_structures = QtGui.QGraphicsItemGroup(scene=self.scene) def offset(vaddr): # FIXME return vaddr - context.heap.start for s in context.listStructures(): #offset, value, color = QtCore.Qt.green, scene=None, parent=None): self.allocated_structures.addToGroup(widgets.Structure(offset(s._vaddr), s, scene = self.scene, color = QtCore.Qt.blue) ) return