Partager via


Fonction SymGetLineFromName (dbghelp.h)

Recherche une ligne source pour le module, le nom de fichier et le numéro de ligne spécifiés.

Syntaxe

BOOL IMAGEAPI SymGetLineFromName(
  [in]           HANDLE         hProcess,
  [in, optional] PCSTR          ModuleName,
  [in, optional] PCSTR          FileName,
  [in]           DWORD          dwLineNumber,
  [out]          PLONG          plDisplacement,
  [in, out]      PIMAGEHLP_LINE Line
);

Paramètres

[in] hProcess

Handle du processus qui a été passé à l’origine à la fonction SymInitialize .

[in, optional] ModuleName

Nom du module dans lequel se trouve une ligne.

[in, optional] FileName

Nom du fichier dans lequel se trouve une ligne. Si l’application a plusieurs fichiers sources portant ce nom, veillez à spécifier un chemin d’accès complet.

[in] dwLineNumber

Numéro de ligne à trouver.

[out] plDisplacement

Déplacement en octets à partir du début de la ligne, ou zéro.

[in, out] Line

Pointeur vers une structure IMAGEHLP_LINE64 .

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour récupérer des informations d’erreur étendues, appelez GetLastError.

Notes

L’appelant doit allouer correctement la mémoire tampon de ligne et renseigner les membres requis de la structure IMAGEHLP_LINE64 avant d’appeler SymGetLineFromName64.

Avant d’appeler cette fonction, vérifiez que les symboles sont correctement initialisés en appelant d’abord SymInitialize, SymSetOptions et SymLoadModule64.

Cette fonction retourne un pointeur vers une mémoire tampon qui peut être réutilisée par une autre fonction. Par conséquent, veillez à copier immédiatement les données retournées dans une autre mémoire tampon.

Toutes les fonctions DbgHelp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

Pour appeler la version Unicode de cette fonction, définissez DBGHELP_TRANSLATE_TCHAR. SymGetLineFromNameW64 est défini comme suit dans Dbghelp.h.


BOOL
IMAGEAPI
SymGetLineFromNameW64(
    __in HANDLE hProcess,
    __in_opt PCWSTR ModuleName,
    __in_opt PCWSTR FileName,
    __in DWORD dwLineNumber,
    __out PLONG plDisplacement,
    __inout PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetLineFromName64   SymGetLineFromNameW64
#endif

Cette fonction remplace la fonction SymGetLineFromName . Pour plus d’informations, consultez Mise à jour de la prise en charge de la plateforme. SymGetLineFromName est défini comme suit dans Dbghelp.h.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromName SymGetLineFromName64
#else
BOOL
IMAGEAPI
SymGetLineFromName(
    __in HANDLE hProcess,
    __in_opt PCSTR ModuleName,
    __in_opt PCSTR FileName,
    __in DWORD dwLineNumber,
    __out PLONG plDisplacement,
    __inout PIMAGEHLP_LINE Line
    );
#endif

Exemples

Pour obtenir un exemple, consultez Récupération des informations sur les symboles par nom.

Spécifications

   
Plateforme cible Windows
En-tête dbghelp.h
Bibliothèque Dbghelp.lib
DLL Dbghelp.dll
Composant redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

Fonctions DbgHelp

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize