Как я могу определить, хочет ли пользователь шестнадцатеричное или десятичное отображение чисел в функции просмотра EEAddIn?

У меня есть старая Visual Studio EEAddin стиле Расширение отладчика, предназначенное для приема строк, которые были сопоставлены с целыми числами во время выполнения, и обратного отображения, чтобы отобразить исходное значение строки в окне просмотра.

Например, отображение строки, сопоставленной с целым числом 0x39ad1dc4 является 0x39ad1dc4 (Hello, world!),

Я хотел бы соблюдать настройку флага «Шестнадцатеричное отображение» отладчика, когда я форматирую целочисленную часть результата, но я не уверен, как (или даже если) я могу получить доступ к этой настройке из моего обратного вызова.

Для справки, обратный вызов EEAddin «custom viewer», который я использую:

typedef HRESULT (WINAPI * CUSTOMVIEWER)(DWORD address, DEBUGHELPER * helper, int base, BOOL useUnicodeStrings, char * result, size_t max, DWORD reserved);

Можно подумать, base Параметр даст мне информацию, которая мне нужна, но в моих тестах она всегда была 10независимо от того, какое состояние опции шестнадцатеричного отображения в отладчике установлено.

У меня есть доступ к DEBUGHELPER API, который выглядит так:

typedef struct tagDEBUGHELPER {
DWORD dwVersion;

HRESULT (WINAPI * ReadDebuggeeMemory)(struct tagDEBUGHELPER * self, DWORD address, DWORD bytesToRead, VOID * destination, DWORD * bytesActuallyRead );

// The API calls below are only supported when dwVersion is >= 0x20000.
DWORDLONG (WINAPI * GetRealAddress)(struct tagDEBUGHELPER * self);
HRESULT (WINAPI * ReadDebuggeeMemoryEx)(struct tagDEBUGHELPER * self, DWORDLONG address, DWORD bytesToRead, VOID * destination, DWORD * bytesActuallyRead);

int (WINAPI * GetProcessorType)(struct tagDEBUGHELPER * self);
} DEBUGHELPER;

Мне пришлось вручную определять этот API на основе примера кода, разбросанного по всему интернету; документирование этого и любых потенциально связанных API довольно трудно найти. Вышеуказанная структура и тип обратного вызова являются единственными частями API, о которых я знаю.

Есть ли способ определить состояние шестнадцатеричного флажка отображения с помощью этого или некоторого связанного API? Я мог бы переписать средство просмотра в новой платформе расширений, если это необходимо, при условии, что эта платформа позволяет мне создавать расширения для собственного кода.

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]