ExtensionContext Class

Header: #include <ExtensionContext>

Public Types

class CdbVersion
enum CallFlags { CallWithExceptionsHandled, CallWithExceptionsNotHandled }
typedef StopReasonMap

Public Functions

~ExtensionContext()
bool call(const std::string &functionCall, unsigned callFlags, std::wstring *output, std::string *errorMessage)
CdbVersion cdbVersion()
void discardSymbolGroup()
void discardWatchesSymbolGroup()
ULONG executionStatus() const
void hookCallbacks(CIDebugClient *client)
CIDebugClient *hookedClient() const
HRESULT initialize(PULONG Version, PULONG Flags)
ULONG64 jsExecutionEngine(ExtensionCommandContext &exc, std::string *errorMessage)
void notifyIdleCommand(CIDebugClient *client)
void notifyState(ULONG Notify)
const Parameters &parameters() const
Parameters &parameters()
bool report(char code, int remainingChunks, int token, const char *serviceName, PCSTR Format, ...)
bool reportLong(char code, int token, const char *serviceName, const std::string &message)
void setStateNotification(bool s)
void setStopReason(const StopReasonMap &, const std::string &reason = std::string())
void startRecordingOutput()
bool stateNotification() const
std::wstring stopRecordingOutput()
LocalsSymbolGroup *symbolGroup(CIDebugSymbols *symbols, ULONG threadId, int frame, std::string *errorMessage)
int symbolGroupFrame() const
void unhookCallbacks()
WatchesSymbolGroup *watchesSymbolGroup(CIDebugSymbols *symbols, std::string *errorMessage)
WatchesSymbolGroup *watchesSymbolGroup() const

Static Public Members

ExtensionContext &instance()

Detailed Description

Global singleton with context. Caches a symbolgroup per frame and thread as long as the session is accessible.

Member Type Documentation

enum ExtensionContext::CallFlags

typedef ExtensionContext::StopReasonMap

Member Function Documentation

ExtensionContext::~ExtensionContext()

Destroys the instance of ExtensionContext.

bool ExtensionContext::call(const std::string &functionCall, unsigned callFlags, std::wstring *output, std::string *errorMessage)

CdbVersion ExtensionContext::cdbVersion()

void ExtensionContext::discardSymbolGroup()

void ExtensionContext::discardWatchesSymbolGroup()

ULONG ExtensionContext::executionStatus() const

void ExtensionContext::hookCallbacks(CIDebugClient *client)

CIDebugClient *ExtensionContext::hookedClient() const

HRESULT ExtensionContext::initialize(PULONG Version, PULONG Flags)

[static] ExtensionContext &ExtensionContext::instance()

ULONG64 ExtensionContext::jsExecutionEngine(ExtensionCommandContext &exc, std::string *errorMessage)

void ExtensionContext::notifyIdleCommand(CIDebugClient *client)

void ExtensionContext::notifyState(ULONG Notify)

const Parameters &ExtensionContext::parameters() const

Parameters &ExtensionContext::parameters()

bool ExtensionContext::report(char code, int remainingChunks, int token, const char *serviceName, PCSTR Format, ...)

bool ExtensionContext::reportLong(char code, int token, const char *serviceName, const std::string &message)

void ExtensionContext::setStateNotification(bool s)

See also stateNotification().

void ExtensionContext::setStopReason(const StopReasonMap &, const std::string &reason = std::string())

void ExtensionContext::startRecordingOutput()

bool ExtensionContext::stateNotification() const

See also setStateNotification().

std::wstring ExtensionContext::stopRecordingOutput()

LocalsSymbolGroup *ExtensionContext::symbolGroup(CIDebugSymbols *symbols, ULONG threadId, int frame, std::string *errorMessage)

int ExtensionContext::symbolGroupFrame() const

void ExtensionContext::unhookCallbacks()

WatchesSymbolGroup *ExtensionContext::watchesSymbolGroup(CIDebugSymbols *symbols, std::string *errorMessage)

WatchesSymbolGroup *ExtensionContext::watchesSymbolGroup() const