diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp index 9d6fc40..e93212f 100644 --- a/pykd/dbgext.cpp +++ b/pykd/dbgext.cpp @@ -221,6 +221,8 @@ BOOST_PYTHON_MODULE( pykd ) "Delete synthetic symbols by virtual address" ); boost::python::def( "delSynSymbolsMask", &delSyntheticSymbolsMask, "Delete synthetic symbols by mask of module and symbol name"); + boost::python::def( "debuggerPath", &getDebuggerImage, + "Return full path to the process image that uses pykd" ); boost::python::class_<TypeInfo>( "typeInfo", "Class representing non-primitive type info: structure, union, etc. attributes is a fields of non-primitive type" ) @@ -253,7 +255,7 @@ BOOST_PYTHON_MODULE( pykd ) DEF_PY_GLOBAL( "ulong_t", TypeInfo("", "unsigned long") ); DEF_PY_GLOBAL( "int_t", TypeInfo("", "int") ); DEF_PY_GLOBAL( "uint_t", TypeInfo("", "unsigned int") ); - DEF_PY_GLOBAL( "ptr_t", TypeInfo("", "void*") ); + //DEF_PY_GLOBAL( "ptr_t", TypeInfo("", "void*") ); DEF_PY_GLOBAL( "double_t", TypeInfo("", "double") ); DEF_PY_GLOBAL( "longlong_t", TypeInfo("", "int64") ); DEF_PY_GLOBAL( "ulonglong_t", TypeInfo("", "unsigned int64") ); diff --git a/pykd/dbgsystem.cpp b/pykd/dbgsystem.cpp index 069ef41..2cf890a 100644 --- a/pykd/dbgsystem.cpp +++ b/pykd/dbgsystem.cpp @@ -1,5 +1,7 @@ #include "stdafx.h" +#include <psapi.h> + #include "dbgext.h" #include "dbgexcept.h" #include "dbgsystem.h" @@ -124,3 +126,13 @@ isDumpAnalyzing() } /////////////////////////////////////////////////////////////////////////////////// + +std::string +getDebuggerImage() +{ + std::vector<char> buffer(MAX_PATH); + GetModuleFileNameExA( GetCurrentProcess(), NULL, &buffer[0], buffer.size() ); + return std::string( &buffer[0] ); +} + +/////////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/pykd/dbgsystem.h b/pykd/dbgsystem.h index 7b52da9..88e337b 100644 --- a/pykd/dbgsystem.h +++ b/pykd/dbgsystem.h @@ -28,4 +28,8 @@ isKernelDebugging(); bool isDumpAnalyzing(); +std::string +getDebuggerImage(); + + ///////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/pykd/pykd.vcproj b/pykd/pykd.vcproj index 41a9c66..d121df2 100644 --- a/pykd/pykd.vcproj +++ b/pykd/pykd.vcproj @@ -66,7 +66,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib " + AdditionalDependencies="dbgeng.lib dbghelp.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="2" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\i386";"$(PYTHON_ROOT)\x86\libs";"$(BOOST_ROOT)\stage\lib"" @@ -151,7 +151,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib dbghelp.lib" + AdditionalDependencies="dbgeng.lib dbghelp.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="2" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\amd64";"$(PYTHON_ROOT)\x64\libs";"$(BOOST_ROOT)\stage64\lib"" @@ -230,7 +230,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib" + AdditionalDependencies="dbgeng.lib dbghelp.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="1" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\i386";"$(PYTHON_ROOT)\x86\libs";"$(BOOST_ROOT)\stage\lib"" @@ -311,7 +311,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib dbghelp.lib" + AdditionalDependencies="dbgeng.lib dbghelp.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="1" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\amd64";"$(PYTHON_ROOT)\x64\libs";"$(BOOST_ROOT)\stage64\lib"" diff --git a/pykd/pykd_2008.vcproj b/pykd/pykd_2008.vcproj index 6a58a96..f886eba 100644 --- a/pykd/pykd_2008.vcproj +++ b/pykd/pykd_2008.vcproj @@ -70,7 +70,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib " + AdditionalDependencies="dbgeng.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="2" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\i386";"$(PYTHON_ROOT)\x86\libs";"$(BOOST_ROOT)\stage\lib"" @@ -151,7 +151,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="dbgeng.lib" + AdditionalDependencies="dbgeng.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="2" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\amd64";"$(PYTHON_ROOT)\x64\libs";"$(BOOST_ROOT)\stage64\lib"" @@ -227,7 +227,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/pdbpath:none" - AdditionalDependencies="dbgeng.lib" + AdditionalDependencies="dbgeng.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="1" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\i386";"$(PYTHON_ROOT)\x86\libs";"$(BOOST_ROOT)\stage\lib"" @@ -306,7 +306,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/pdbpath:none" - AdditionalDependencies="dbgeng.lib" + AdditionalDependencies="dbgeng.lib psapi.lib" OutputFile="$(OutDir)\$(ProjectName).pyd" LinkIncremental="1" AdditionalLibraryDirectories=""$(DBG_SDK_ROOT)\lib\amd64";"$(PYTHON_ROOT)\x64\libs";"$(BOOST_ROOT)\stage64\lib""