Поделиться через


структура CREATE_PROCESS_DEBUG_INFO (minwinbase.h)

Содержит сведения о создании процесса, которые могут использоваться отладчиком.

Синтаксис

typedef struct _CREATE_PROCESS_DEBUG_INFO {
  HANDLE                 hFile;
  HANDLE                 hProcess;
  HANDLE                 hThread;
  LPVOID                 lpBaseOfImage;
  DWORD                  dwDebugInfoFileOffset;
  DWORD                  nDebugInfoSize;
  LPVOID                 lpThreadLocalBase;
  LPTHREAD_START_ROUTINE lpStartAddress;
  LPVOID                 lpImageName;
  WORD                   fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;

Члены

hFile

Дескриптор файла изображения процесса. Если этот член имеет значение NULL, дескриптор недопустим. В противном случае отладчик может использовать элемент для чтения и записи в файл образа.

После завершения работы с этим файлом отладчик должен закрыть дескриптор с помощью функции CloseHandle .

hProcess

Дескриптор процесса. Если этот член имеет значение NULL, дескриптор недопустим. В противном случае отладчик может использовать элемент для чтения и записи в память процесса.

hThread

Дескриптор начального потока процесса, определяемого элементом hProcess . Если параметр hThread имеет значение NULL, дескриптор недопустим. В противном случае отладчик имеет доступ к потоку THREAD_GET_CONTEXT, THREAD_SET_CONTEXT и THREAD_SUSPEND_RESUME , что позволяет отладчику выполнять чтение и запись в регистры потока, а также управлять выполнением потока.

lpBaseOfImage

Базовый адрес исполняемого образа, в котором выполняется процесс.

dwDebugInfoFileOffset

Смещение сведений об отладке в файле, определяемом элементом hFile .

nDebugInfoSize

Размер сведений об отладке в файле в байтах. Если это значение равно нулю, сведения об отладке отсутствуют.

lpThreadLocalBase

Указатель на блок данных. При смещении 0x2C в этот блок находится другой указатель, называемый ThreadLocalStoragePointer, который указывает на массив локальных блоков хранения потока модуля. Это дает отладчику доступ к данным каждого потока в потоках отлаживаемого процесса с использованием алгоритмов, которые будет использовать компилятор.

lpStartAddress

Указатель на начальный адрес потока. Это значение может быть только приближением к начальному адресу потока, так как любое приложение с соответствующим доступом к потоку может изменить контекст потока с помощью функции SetThreadContext .

lpImageName

Указатель на имя файла, связанного с элементом hFile . Этот параметр может иметь значение NULL или содержать адрес строкового указателя в адресном пространстве отлаживаемого процесса. Этот адрес, в свою очередь, может иметь значение NULL или указывать на фактическое имя файла. Если fUnicode является ненулевым значением, строка имени — Юникод; в противном случае — ANSI.

Этот член является строго необязательным. Отладчики должны быть подготовлены для обработки случаев, когда lpImageName имеет значение NULL или *lpImageName (в адресном пространстве отлаживаемого процесса) имеет значение NULL. В частности, система не предоставляет имя образа для события процесса создания и, скорее всего, не передает имя образа для первого события DLL. Система также не предоставляет эти сведения в случае событий отладки, которые возникают при вызове функции DebugActiveProcess .

fUnicode

Значение , указывающее, является ли имя файла, указанное элементом lpImageName , юникодом или ANSI. Ненулевое значение указывает на Юникод; нуль означает ANSI.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть minwinbase.h (включая Windows.h)

См. также раздел

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext