diff --git a/pykd/dbgengine.cpp b/pykd/dbgengine.cpp index 6896f5b..ca61c12 100644 --- a/pykd/dbgengine.cpp +++ b/pykd/dbgengine.cpp @@ -4,6 +4,7 @@ #include "kdlib/typeinfo.h" #include "dbgengine.h" +#include "variant.h" namespace pykd { @@ -131,13 +132,13 @@ std::wstring debugCommand( const std::wstring &command ) /////////////////////////////////////////////////////////////////////////////// -unsigned long long evaluate( const std::wstring &expression ) +python::object evaluate( const std::wstring &expression, bool cplusplus ) { AutoRestorePyState pystate; - unsigned long long result = kdlib::evaluate(expression); + kdlib::NumVariant var = kdlib::evaluate(expression, cplusplus ); - return result; + return pykd::NumVariantAdaptor::convertToPython( var ); } /////////////////////////////////////////////////////////////////////////////// diff --git a/pykd/dbgengine.h b/pykd/dbgengine.h index 956a196..e53f956 100644 --- a/pykd/dbgengine.h +++ b/pykd/dbgengine.h @@ -21,7 +21,7 @@ void loadDump( const std::wstring &fileName ); void attachKernel( const std::wstring &connectOptions = L"" ); std::wstring debugCommand( const std::wstring &command ); -unsigned long long evaluate( const std::wstring &expression ); +python::object evaluate( const std::wstring &expression, bool cplusplus = false ); python::tuple getSourceLine( kdlib::MEMOFFSET_64 offset = 0 );