structure CREATE_PROCESS_DEBUG_INFO (minwinbase.h)

Contient des informations de création de processus qui peuvent être utilisées par un débogueur.

Syntaxe

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;

Membres

hFile

Handle du fichier image du processus. Si ce membre a la valeur NULL, le handle n’est pas valide. Sinon, le débogueur peut utiliser le membre pour lire et écrire dans le fichier image.

Lorsque le débogueur a terminé ce fichier, il doit fermer le handle à l’aide de la fonction CloseHandle .

hProcess

Handle du processus. Si ce membre a la valeur NULL, le handle n’est pas valide. Sinon, le débogueur peut utiliser le membre pour lire et écrire dans la mémoire du processus.

hThread

Handle du thread initial du processus identifié par le membre hProcess . Si hThread param a la valeur NULL, le handle n’est pas valide. Sinon, le débogueur dispose d’un accès THREAD_GET_CONTEXT, THREAD_SET_CONTEXT et THREAD_SUSPEND_RESUME au thread, ce qui lui permet de lire et d’écrire dans les registres du thread et de contrôler l’exécution du thread.

lpBaseOfImage

Adresse de base de l’image exécutable que le processus exécute.

dwDebugInfoFileOffset

Décalage vers les informations de débogage dans le fichier identifié par le membre hFile .

nDebugInfoSize

Taille des informations de débogage dans le fichier, en octets. Si cette valeur est égale à zéro, il n’existe aucune information de débogage.

lpThreadLocalBase

Pointeur vers un bloc de données. Au moment du décalage 0x2C dans ce bloc se trouve un autre pointeur, appelé ThreadLocalStoragePointer, qui pointe vers un tableau de blocs de stockage locaux de thread par module. Cela permet à un débogueur d’accéder aux données par thread dans les threads du processus débogué à l’aide des mêmes algorithmes qu’un compilateur utiliserait.

lpStartAddress

Pointeur vers l’adresse de départ du thread. Cette valeur peut uniquement être une approximation de l’adresse de départ du thread, car toute application disposant d’un accès approprié au thread peut modifier le contexte du thread à l’aide de la fonction SetThreadContext .

lpImageName

Pointeur vers le nom de fichier associé au membre hFile . Ce paramètre peut être NULL ou contenir l’adresse d’un pointeur de chaîne dans l’espace d’adressage du processus en cours de débogage. Cette adresse peut, à son tour, être NULL ou pointer vers le nom de fichier réel. Si fUnicode est une valeur différente de zéro, la chaîne de nom est Unicode ; sinon, il s’agit d’ANSI.

Ce membre est strictement facultatif. Les débogueurs doivent être prêts à gérer le cas où lpImageName a la valeur NULL ou *lpImageName (dans l’espace d’adressage du processus débogué) a la valeur NULL. Plus précisément, le système ne fournit pas de nom d’image pour un événement de processus de création et ne passera probablement pas un nom d’image pour le premier événement DLL. Le système ne fournit pas non plus ces informations dans le cas d’événements de débogage qui proviennent d’un appel à la fonction DebugActiveProcess .

fUnicode

Valeur qui indique si un nom de fichier spécifié par le membre lpImageName est Unicode ou ANSI. Une valeur différente de zéro indique Unicode ; zéro indique ANSI.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête minwinbase.h (inclure Windows.h)

Voir aussi

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext