![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
просмотр регистров процессора во время отладки приложения [D6, WinXP]
CTEPH © (2003-10-23 22:19:00)
Пишу некое подобие отладчика с помощью Win32 Debug API.
Необходимо просматривать регистры процессора при возникновении событий вроде LoadDll, СreateThread и т.п.
Сделал с помощью функции GetThreadContext но я не знаю правильного хэндла и поэтому регистры отображаются неправильно.
Знаю что во время события CREATE_THREAD_DEBUG_EVENT можно получить хэндл, но это не особо помогло.
Подскажите пожалуйста где найти необходимый хэндл для правильного выполнения функции GetThreadContext?
Digitman (2003-10-24 08:34:00) [1]
> при возникновении событий вроде LoadDll, СreateThread
что это еще за "события" такие ?
нет таких "событий"
есть kernel32-ф-ции LoadLibrary, CreateThread и т.д.
а GetThreadContext никакого "хэндла" в кач-е параметра не требует
требует она ThreadId - уникальный ид-р кодового потока, который фигурирует в структуре
The DEBUG_EVENT structure describes a debugging event.
typedef struct _DEBUG_EVENT { // de
DWORD dwDebugEventCode;
DWORD dwProcessId;
DWORD dwThreadId;
union {
EXCEPTION_DEBUG_INFO Exception;
CREATE_THREAD_DEBUG_INFO CreateThread;
CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
EXIT_THREAD_DEBUG_INFO ExitThread;
EXIT_PROCESS_DEBUG_INFO ExitProcess;
LOAD_DLL_DEBUG_INFO LoadDll;
UNLOAD_DLL_DEBUG_INFO UnloadDll;
OUTPUT_DEBUG_STRING_INFO DebugString;
RIP_INFO RipInfo;
} u;
} DEBUG_EVENT;
dwThreadId
Specifies the identifier of the thread in which the debugging event occurred. A debugger uses this value to locate the debugger"s per-thread structure. These values are not necessarily small integers that can be used as table indices.