From 1c20123492d22cda850842067727c04d385756c8 Mon Sep 17 00:00:00 2001 From: "SND\\EreTIk_cp" Date: Fri, 13 Jul 2012 09:23:13 +0000 Subject: [PATCH] [0.1.x] + DiaSymbol.section method git-svn-id: https://pykd.svn.codeplex.com/svn@78038 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/diaprint.cpp | 4 ++++ pykd/diawrapper.cpp | 7 +++++++ pykd/diawrapper.h | 2 ++ pykd/pymod.cpp | 2 ++ 4 files changed, 15 insertions(+) diff --git a/pykd/diaprint.cpp b/pykd/diaprint.cpp index 1c9bfca..d77ebbd 100644 --- a/pykd/diaprint.cpp +++ b/pykd/diaprint.cpp @@ -241,6 +241,10 @@ std::string Symbol::printImpl( if (S_OK == hres) sstream << ", Length: 0x" << std::hex << ullValue; + hres = _symbol->get_targetSection(&dwValue); + if (S_OK == hres) + sstream << ", Section: " << std::dec << ullValue; + bValue = false; try { diff --git a/pykd/diawrapper.cpp b/pykd/diawrapper.cpp index b8cbbbd..a3b8fe7 100644 --- a/pykd/diawrapper.cpp +++ b/pykd/diawrapper.cpp @@ -195,6 +195,13 @@ ULONG Symbol::getVirtualBaseDispSize() //////////////////////////////////////////////////////////////////////////////// +ULONG Symbol::getSection() +{ + return callSymbol(get_targetSection); +} + +//////////////////////////////////////////////////////////////////////////////// + void Symbol::getValueImpl(IDiaSymbol *_symbol, VARIANT &vtValue) { HRESULT hres = _symbol->get_value(&vtValue); diff --git a/pykd/diawrapper.h b/pykd/diawrapper.h index 4b8c090..68843c8 100644 --- a/pykd/diawrapper.h +++ b/pykd/diawrapper.h @@ -166,6 +166,8 @@ public: ULONG getVirtualBaseDispSize(); + ULONG getSection(); + public: typedef std::pair ValueNameEntry; diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index 2aeba4e..b83eb97 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -782,6 +782,8 @@ BOOST_PYTHON_MODULE( pykd ) "CV_REG_XXX (for IMAGE_FILE_MACHINE_I386) or CV_AMD64_XXX (for IMAGE_FILE_MACHINE_AMD64)") .def("machineType", &pyDia::Symbol::getMachineType, "Retrieves the type of the target CPU: IMAGE_FILE_MACHINE_XXX") + .def("section", &pyDia::Symbol::getSection, + "Retrieves the address section of a thunk target") .def( "__str__", &pyDia::Symbol::print) .def("__getitem__", &pyDia::Symbol::getChildByName) .def("__len__", &pyDia::Symbol::getChildCount )