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) |