From 04d122462166214732068f5e3d7db7654610205d Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Fri, 24 Jan 2014 08:44:13 +0000 Subject: [PATCH] [0.3.x] added : getLastEvent getLastException routines git-svn-id: https://pykd.svn.codeplex.com/svn@87129 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/pykd.vcxproj | 1 + pykd/pykd.vcxproj.filters | 3 +++ pykd/pymod.cpp | 47 +++++++++++++++++++++++++-------------- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/pykd/pykd.vcxproj b/pykd/pykd.vcxproj index 9d8a7aa..5221b68 100644 --- a/pykd/pykd.vcxproj +++ b/pykd/pykd.vcxproj @@ -239,6 +239,7 @@ + diff --git a/pykd/pykd.vcxproj.filters b/pykd/pykd.vcxproj.filters index 8bb920b..a814c73 100644 --- a/pykd/pykd.vcxproj.filters +++ b/pykd/pykd.vcxproj.filters @@ -72,6 +72,9 @@ Header Files + + Header Files + diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index 550c848..198c117 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -14,6 +14,7 @@ #include "pydbgeng.h" #include "pydbgio.h" #include "pydisasm.h" +#include "pyevents.h" #include "pyeventhandler.h" #include "pymemaccess.h" #include "pymodule.h" @@ -381,6 +382,14 @@ BOOST_PYTHON_MODULE( pykd ) python::def( "setImplicitThread", pykd::setImplicitThread, "Set implicit thread" ); + // events + python::def("getLastEvent", pykd::getLastEvent, + "Get last debug event information"); + python::def("getLastException", pykd::getLastException, + "Get last exception information"); + + + // // symbol path // python::def( "getSymbolPath", &getSymbolPath, "Returns current symbol path"); // python::def( "setSymbolPath", &setSymbolPath, "Set current symbol path"); @@ -681,24 +690,28 @@ BOOST_PYTHON_MODULE( pykd ) .def( "__str__", pykd::printExceptionInfo, "Return object as a string"); - // python::enum_("eventType", "Type of debug event") - // .value("Breakpoint", EventTypeBreakpoint) - // .value("Exception", EventTypeException) - // .value("CreateThread", EventTypeCreateThread) - // .value("ExitThread", EventTypeExitThread) - // .value("CreateProcess", EventTypeCreateProcess) - // .value("ExitProcess", EventTypeExitProcess) - // .value("LoadModule", EventTypeLoadModule) - // .value("UnloadModule", EventTypeUnloadModule) - // .value("SystemError", EventTypeSystemError) - // .value("SessionStatus", EventTypeSessionStatus) - // .value("ChangeDebuggeeState", EventTypeChangeDebuggeeState) - // .value("ChangeEngineState", EventTypeChangeEngineState) - // .value("ChangeSymbolState", EventTypeChangeSymbolState) - // .export_values(); + python::enum_("eventType", "Type of debug event") + .value("Breakpoint", kdlib::EventTypeBreakpoint) + .value("Exception", kdlib::EventTypeException) + .value("CreateThread", kdlib::EventTypeCreateThread) + .value("ExitThread", kdlib::EventTypeExitThread) + .value("CreateProcess", kdlib::EventTypeCreateProcess) + .value("ExitProcess", kdlib::EventTypeExitProcess) + .value("LoadModule", kdlib::EventTypeLoadModule) + .value("UnloadModule", kdlib::EventTypeUnloadModule) + .value("SystemError", kdlib::EventTypeSystemError) + .value("SessionStatus", kdlib::EventTypeSessionStatus) + .value("ChangeDebuggeeState", kdlib::EventTypeChangeDebuggeeState) + .value("ChangeEngineState", kdlib::EventTypeChangeEngineState) + .value("ChangeSymbolState", kdlib::EventTypeChangeSymbolState) + .export_values(); + + python::class_("debugEvent", "Debug evemt descriptions", python::no_init) + .def_readonly("type", &DebugEvent::eventType) + .def_readonly("process", &DebugEvent::process) + .def_readonly("thread", &DebugEvent::thread) + ; - // python::def( "lastEvent", &getLastEventType, - // "Return type of last event: eventType" ); // python::def( "lastException", &getLastExceptionInfo, // "Return data of last exception event: exceptionInfo" ); // python::def( "bugCheckData", &pysupport::getBugCheckData,