diff --git a/kdlibcpp b/kdlibcpp index d6c85ac..4154e46 160000 --- a/kdlibcpp +++ b/kdlibcpp @@ -1 +1 @@ -Subproject commit d6c85ac71663a98e885aed81ced4ca1aadd0be8e +Subproject commit 4154e469221fb023121657d3acf4d51d6caa5ef4 diff --git a/pykd/pydbgeng.h b/pykd/pydbgeng.h index ef8ba9f..a8ba878 100644 --- a/pykd/pydbgeng.h +++ b/pykd/pydbgeng.h @@ -147,6 +147,20 @@ void setOutputMask(const kdlib::OutputFlagsSet& outputMask) kdlib::setOutputFlags(outputMask); } +inline +kdlib::DumpType getDumpType() +{ + AutoRestorePyState pystate; + return kdlib::getDumpType(); +} + +inline +kdlib::DumpFormatFlagsSet getDumpFormat() +{ + AutoRestorePyState pystate; + return kdlib::getDumpFormat(); +} + /////////////////////////////////////////////////////////////////////////////// // processes end threads diff --git a/pykd/pykdver.h b/pykd/pykdver.h index 2487b9e..106c876 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 4 -#define PYKD_VERSION_BUILDNO 13 +#define PYKD_VERSION_BUILDNO 14 #define __VER_STR2__(x) #x #define __VER_STR1__(x) __VER_STR2__(x) diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index 6fe1a4d..ed5996f 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -202,6 +202,10 @@ void pykd_init() "Get output mask"); python::def("setOutputMask", pykd::setOutputMask, "Set output mask"); + python::def("getDumpType", pykd::getDumpType, + "Return type of the dump"); + python::def("getDumpFormat", pykd::getDumpFormat, + "Return format the dump"); python::def( "breakin", pykd::targetBreak, "Break into debugger" ); @@ -1532,6 +1536,39 @@ void pykd_init() .value("All", kdlib::All) ; + python::enum_("dumpType", "Dump type") + .value("Small", kdlib::Small) + .value("Default", kdlib::Default) + .value("Full", kdlib::Full) + .value("Image", kdlib::Image) + .value("KernelSmall", kdlib::KernelSmall) + .value("Kernel", kdlib::Kernel) + .value("KernelFull", kdlib::KernelFull) + ; + + python::enum_("dumpFormat", "Dump format") + .value("UserSmallFullMemory", kdlib::UserSmallFullMemory) + .value("UserSmallHandleData", kdlib::UserSmallHandleData) + .value("UserSmallUnloadedModules", kdlib::UserSmallUnloadedModules) + .value("UserSmallIndirectMemory", kdlib::UserSmallIndirectMemory) + .value("UserSmallDataSegments", kdlib::UserSmallDataSegments) + .value("UserSmallFilterMemory", kdlib::UserSmallFilterMemory) + .value("UserSmallFilterPaths", kdlib::UserSmallFilterPaths) + .value("UserSmallProcessThreadData", kdlib::UserSmallProcessThreadData) + .value("UserSmallPrivateReadWriteMemory", kdlib::UserSmallPrivateReadWriteMemory) + .value("UserSmallNoOptionalData", kdlib::UserSmallNoOptionalData) + .value("UserSmallFullMemoryInfo", kdlib::UserSmallFullMemoryInfo) + .value("UserSmallThreadInfo", kdlib::UserSmallThreadInfo) + .value("UserSmallCodeSegments", kdlib::UserSmallCodeSegments) + .value("UserSmallNoAuxiliaryState", kdlib::UserSmallNoAuxiliaryState) + .value("UserSmallFullAuxiliaryState", kdlib::UserSmallFullAuxiliaryState) + .value("UserSmallModuleHeaders", kdlib::UserSmallModuleHeaders) + .value("UserSmallFilterTriage", kdlib::UserSmallFilterTriage) + .value("UserSmallAddAvxXStateContext", kdlib::UserSmallAddAvxXStateContext) + .value("UserSmallIptTrace", kdlib::UserSmallIptTrace) + .value("UserSmallIgnoreInaccessibleMem", kdlib::UserSmallIgnoreInaccessibleMem) + ; + // C++ exception translation to python pykd::registerExceptions(); }