diff --git a/pykd/pyeventhandler.cpp b/pykd/pyeventhandler.cpp index 099186e..69e1bc1 100644 --- a/pykd/pyeventhandler.cpp +++ b/pykd/pyeventhandler.cpp @@ -421,6 +421,29 @@ void EventHandler::onChangeLocalScope() m_pystate = PyEval_SaveThread(); } + +///////////////////////////////////////////////////////////////////////////////// + +void EventHandler::onChangeSymbolPaths() +{ + PyEval_RestoreThread( m_pystate ); + + try { + + python::override pythonHandler = get_override("onChangeSymbolPaths"); + if ( pythonHandler ) + { + pythonHandler(); + } + } + catch (const python::error_already_set &) + { + printException(); + } + + m_pystate = PyEval_SaveThread(); +} + ///////////////////////////////////////////////////////////////////////////////// void EventHandler::onChangeBreakpoints() diff --git a/pykd/pyeventhandler.h b/pykd/pyeventhandler.h index 127409d..c16f452 100644 --- a/pykd/pyeventhandler.h +++ b/pykd/pyeventhandler.h @@ -38,6 +38,7 @@ public: virtual void onExecutionStatusChange(kdlib::ExecutionStatus executionStatus); virtual void onCurrentThreadChange(kdlib::THREAD_DEBUG_ID threadid); virtual void onChangeLocalScope(); + virtual void onChangeSymbolPaths(); virtual void onChangeBreakpoints(); virtual void onDebugOutput(const std::wstring& text); virtual void onStartInput(); diff --git a/pykd/pykdver.h b/pykd/pykdver.h index 7c6a80f..f6bd630 100644 --- a/pykd/pykdver.h +++ b/pykd/pykdver.h @@ -2,7 +2,7 @@ #define PYKD_VERSION_MAJOR 0 #define PYKD_VERSION_MINOR 3 #define PYKD_VERSION_SUBVERSION 1 -#define PYKD_VERSION_BUILDNO 1 +#define PYKD_VERSION_BUILDNO 3 #define __VER_STR2__(x) #x #define __VER_STR1__(x) __VER_STR2__(x) diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index 599c886..72de152 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -1127,6 +1127,9 @@ BOOST_PYTHON_MODULE( pykd ) .def( "onChangeLocalScope", &EventHandler::onChangeLocalScope, "The current local scope has been changed.\n" "There is no return value" ) + .def("onChangeSymbolPaths", &EventHandler::onChangeSymbolPaths, + "Symbol paths has been changed.\n" + "There is no return value" ) .def("onChangeBreakpoints", &EventHandler::onChangeBreakpoints, "Breakpoints is changed for current process" ) .def( "onDebugOutput", &EventHandler::onDebugOutput,