def openFile(self, widget): fileDialog = gtk.FileChooserDialog(title=None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) fileDialog.set_default_response(gtk.RESPONSE_OK) response = fileDialog.run() if response == gtk.RESPONSE_OK: filename = fileDialog.get_filename() #try: inputFile = file(filename, 'r') data = inputFile.read() scanner = InputScanner(self.syscallsAndErrors) self.faults = scanner.scan(data) if self.faults == None: fileDialog.destroy() self.threadError("Bad file format") return self.faultList.clear() self.existedFaults = [] self.faultsStartValue = {} for key in self.faults.keys(): self.faultsStartValue[key] = "NOFAULT" for f in self.faults[key]: if f[1] == []: self.faultList.append([key, "", "", "", "", "", "", f[0], False]) else: self.faultList.append([key, f[1][0], f[1][1], f[1][2], f[1][3], f[1][4], f[1][5], f[0], False]) self.existedFaults.append([key, f[0]]) self.fileName = filename self.faultsEdited = False self.saveItem.set_sensitive(False) fileDialog.destroy()
def openFile(self, widget): fileDialog = gtk.FileChooserDialog( title=None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) fileDialog.set_default_response(gtk.RESPONSE_OK) response = fileDialog.run() if response == gtk.RESPONSE_OK: filename = fileDialog.get_filename() #try: inputFile = file(filename, 'r') data = inputFile.read() scanner = InputScanner(self.syscallsAndErrors) self.faults = scanner.scan(data) if self.faults == None: fileDialog.destroy() self.threadError("Bad file format") return self.faultList.clear() self.existedFaults = [] self.faultsStartValue = {} for key in self.faults.keys(): self.faultsStartValue[key] = "NOFAULT" for f in self.faults[key]: if f[1] == []: self.faultList.append( [key, "", "", "", "", "", "", f[0], False]) else: self.faultList.append([ key, f[1][0], f[1][1], f[1][2], f[1][3], f[1][4], f[1][5], f[0], False ]) self.existedFaults.append([key, f[0]]) self.fileName = filename self.faultsEdited = False self.saveItem.set_sensitive(False) fileDialog.destroy()
except IOError: print "File does not exist." return inputData = inputFile.read() inputFile.close() # extrakce systemovych volani a jejich navratovych hodnot extractor = SyscallExtractor() try: syscallsAndErrors = extractor.extract("syscalls") except: print "Error during syscalls search" return # lexikalni a syntakticka analyza vstupniho soboru s pravidly scanner = InputScanner(syscallsAndErrors) injectValues = scanner.scan(inputData) if injectValues == None: print "Bad format of input file" return # vygeneruje soubor pro systemtap generator = GenerateStap() generator.generateCmdLine(injectFile, injectValues, syscallsAndErrors[1]) # vlozi odpovidajici chyby podle zadaneho vstupu injector = Injector(command, injectFile) try: injector.start() except: print "Error during injection"