Esempio n. 1
0
    def __init__(self, vw, parent=None):
        self.vw = vw
        self.fva = None
        self.vwgui = vw.getVivGui()

        self.curemu = None
        self.cureffects = None

        self.symctx = viv_sym_analysis.getSymbolikAnalysisContext(vw, consolve=True)
        self.symexpr = viv_sym_expression.SymbolikExpressionParser(defwidth=vw.psize)

        if self.symctx is None:
            raise Exception('No Symboliks For: %s (yet)' % vw.getMeta('Architecture'))

        QWidget.__init__(self, parent=parent)
        e_q_memory.EnviNavMixin.__init__(self)
        self.setEnviNavName('Symboliks%d' % next(self.viewidx))

        self.exprtext = QLineEdit(parent=self)
        self.constraintext = QLineEdit(parent=self)
        self.alleffs = QCheckBox('all effects', parent=self)
        self.alleffs.stateChanged.connect(self.rendSymbolikPath)

        self.loop_count = QSpinBox(parent=self)
        looplabel = QLabel("Max Loops:", parent=self)

        self.pathview = VivSymbolikPathsView(vw, parent=self)
        self.memcanvas = e_q_memcanvas.VQMemoryCanvas(vw, syms=vw, parent=self)

        self.pathview.pathSelected.connect(self.symPathSelected)
        self.exprtext.returnPressed.connect(self.renderSymbolikPaths)
        self.constraintext.returnPressed.connect(self.renderSymbolikPaths)

        fvalabel = QLabel("Function VA:", parent=self)
        inccblabel = QLabel("Must Include VA:", parent=self)
        navbox = HBox(fvalabel, self.exprtext, inccblabel, self.constraintext, looplabel, self.loop_count, self.alleffs)

        mainbox = VBox()
        mainbox.addLayout(navbox)
        mainbox.addWidget(self.pathview)
        mainbox.addWidget(self.memcanvas)
        self.setLayout(mainbox)
        self.updateWindowTitle()
Esempio n. 2
0
 def initMemoryCanvas(self, memobj, syms=None):
     return e_memcanvas_qt.VQMemoryCanvas(memobj, syms=syms, parent=self)