From 7af0fef793b6573f8ab95cc15098130f2ec7244a Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" <SND\kernelnet_cp@9b283d60-5439-405e-af05-b73fd8c4d996> Date: Fri, 29 Jul 2011 14:20:50 +0000 Subject: [PATCH] [samples] added : debug.py git-svn-id: https://pykd.svn.codeplex.com/svn@68415 9b283d60-5439-405e-af05-b73fd8c4d996 --- samples/debug.py | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 samples/debug.py diff --git a/samples/debug.py b/samples/debug.py new file mode 100644 index 0000000..761d083 --- /dev/null +++ b/samples/debug.py @@ -0,0 +1,72 @@ +# +# +# + +from PySide.QtCore import * +from PySide.QtGui import * + +import pykd + + +class DbgThread( QThread ): + + def __init__(self): + QThread.__init__(self) + + def run(self): + pykd.startProcess( self.processName ) + pykd.go() + # pass + while True: + self.sleep(100) + + + self.exit() + + +class MainForm( QMainWindow ): + + def __init__( self ): + + QMainWindow.__init__( self, None ) + self.setWindowTitle("Pykd Debugger Sample") + + fileMenu = QMenu( "&File" ) + fileMenu.addAction( "Open process...", self.onOpenProcess ) + fileMenu.addAction( "Exit", self.onExit ) + + self.menuBar().addMenu( fileMenu ) + + self.resize( 800, 600 ) + + + def __del__( self ): + + if self.debugger.isRunning(): + self.debugger.quit() + self.debugger.wait(1000) + self.debugger.terminate() + + + def onOpenProcess( self ): + fileDlg = QFileDialog( self ) + fileDlg.setNameFilter( self.tr("Executable (*.exe)" ) ) + + self.debugger = DbgThread() + self.debugger.processName = fileDlg.getOpenFileName()[0] + self.debugger.start() + + + def onExit( self ): + self.close() + + +def main(): + + app = QApplication( [] ) + mainForm = MainForm() + mainForm.show() + exitres = app.exec_() + +if __name__ == "__main__": + main() \ No newline at end of file