diff --git a/kdlibcpp b/kdlibcpp index 107f991..6f96e04 160000 --- a/kdlibcpp +++ b/kdlibcpp @@ -1 +1 @@ -Subproject commit 107f991bb61245de85862717550cb365d54de2b0 +Subproject commit 6f96e046f3e79bc464759c6729d6d344083587e4 diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index d265da9..d0af56e 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -127,7 +127,8 @@ void uninitialize() } -BOOST_PYTHON_MODULE( pykd ) +//BOOST_PYTHON_MODULE( pykd ) +void pykd_init() { python::scope().attr("__version__") = pykdVersion; python::scope().attr("version") = pykdVersion; @@ -1370,7 +1371,7 @@ BOOST_PYTHON_MODULE( pykd ) .value("FinalBreak", kdlib::FinalBreak) .value("PreferDml", kdlib::PreferDml) ; - + python::enum_("breakpointAccess", "Breakpoint access types") .value("Read", kdlib::Read) .value("Write", kdlib::Write) @@ -1382,3 +1383,40 @@ BOOST_PYTHON_MODULE( pykd ) } ////////////////////////////////////////////////////////////////////////////////// + +void pykd_deinit(void*) +{ + kdlib::uninitialize(); +} + +////////////////////////////////////////////////////////////////////////////////// + +PyMODINIT_FUNC +PyInit_pykd(void) +{ + static PyModuleDef_Base initial_base = { + PyObject_HEAD_INIT(NULL) + 0, /* m_init */ + 0, /* m_index */ + 0 /* m_copy */ + }; + + static PyMethodDef initial_methods[] = { { 0, 0, 0, 0 } }; + + static struct PyModuleDef moduledef = { \ + initial_base, + "pykd", + 0, /* m_doc */ + -1, /* m_size */ + initial_methods, + 0, /* m_reload */ + 0, /* m_traverse */ + 0, /* m_clear */ + pykd_deinit + }; + + return boost::python::detail::init_module(moduledef, pykd_init); +} + +////////////////////////////////////////////////////////////////////////////////// +