From cf27e9072d5f68b1af1fac4e726d5a27e43cc582 Mon Sep 17 00:00:00 2001 From: ussrhero Date: Wed, 27 May 2020 21:46:44 +0300 Subject: [PATCH 1/3] change kdlibcpp version to 0.3.4.15 --- kdlibcpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kdlibcpp b/kdlibcpp index d6c85ac..4154e46 160000 --- a/kdlibcpp +++ b/kdlibcpp @@ -1 +1 @@ -Subproject commit d6c85ac71663a98e885aed81ced4ca1aadd0be8e +Subproject commit 4154e469221fb023121657d3acf4d51d6caa5ef4 From 8167656e045b9450ba3a6c8501e04e1c064bc2b8 Mon Sep 17 00:00:00 2001 From: ussrhero Date: Thu, 28 May 2020 00:03:38 +0300 Subject: [PATCH 2/3] added getDumpType ( returns dump's type ) --- pykd/pydbgeng.h | 7 +++++++ pykd/pykdver.h | 2 +- pykd/pymod.cpp | 12 ++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pykd/pydbgeng.h b/pykd/pydbgeng.h index ef8ba9f..f6dc9ac 100644 --- a/pykd/pydbgeng.h +++ b/pykd/pydbgeng.h @@ -147,6 +147,13 @@ void setOutputMask(const kdlib::OutputFlagsSet& outputMask) kdlib::setOutputFlags(outputMask); } +inline +kdlib::DumpType getDumpType() +{ + AutoRestorePyState pystate; + return kdlib::getDumpType(); +} + /////////////////////////////////////////////////////////////////////////////// // 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..f1f7294 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -202,6 +202,8 @@ void pykd_init() "Get output mask"); python::def("setOutputMask", pykd::setOutputMask, "Set output mask"); + python::def("getDumpType", pykd::getDumpType, + "Return type of dump"); python::def( "breakin", pykd::targetBreak, "Break into debugger" ); @@ -1532,6 +1534,16 @@ 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) + ; + // C++ exception translation to python pykd::registerExceptions(); } From 6e966b96bed976eb279498166aed15ede9c15738 Mon Sep 17 00:00:00 2001 From: ussrhero Date: Thu, 28 May 2020 00:28:30 +0300 Subject: [PATCH 3/3] added getDumpFormat ( returns format of the dump ) --- pykd/pydbgeng.h | 7 +++++++ pykd/pymod.cpp | 27 ++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/pykd/pydbgeng.h b/pykd/pydbgeng.h index f6dc9ac..a8ba878 100644 --- a/pykd/pydbgeng.h +++ b/pykd/pydbgeng.h @@ -154,6 +154,13 @@ kdlib::DumpType getDumpType() return kdlib::getDumpType(); } +inline +kdlib::DumpFormatFlagsSet getDumpFormat() +{ + AutoRestorePyState pystate; + return kdlib::getDumpFormat(); +} + /////////////////////////////////////////////////////////////////////////////// // processes end threads diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index f1f7294..ed5996f 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -203,7 +203,9 @@ void pykd_init() python::def("setOutputMask", pykd::setOutputMask, "Set output mask"); python::def("getDumpType", pykd::getDumpType, - "Return type of dump"); + "Return type of the dump"); + python::def("getDumpFormat", pykd::getDumpFormat, + "Return format the dump"); python::def( "breakin", pykd::targetBreak, "Break into debugger" ); @@ -1544,6 +1546,29 @@ void pykd_init() .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(); }