SymGetLineFromAddr, fonction (dbghelp.h)

Recherche la ligne source de l’adresse spécifiée.

Syntaxe

BOOL IMAGEAPI SymGetLineFromAddr(
  [in]  HANDLE         hProcess,
  [in]  DWORD          dwAddr,
  [out] PDWORD         pdwDisplacement,
  [out] PIMAGEHLP_LINE Line
);

Paramètres

[in] hProcess

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

[in] dwAddr

Adresse pour laquelle une ligne doit être localisée. Il n’est pas nécessaire que l’adresse se trouve sur une limite de ligne. Si l’adresse apparaît après le début d’une ligne et avant la fin de la ligne, la ligne est trouvée.

[out] pdwDisplacement

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

[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.

Remarques

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

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. SymGetLineFromAddrW64 est défini comme suit dans Dbghelp.h.

BOOL
IMAGEAPI
SymGetLineFromAddrW64(
    _In_ HANDLE hProcess,
    _In_ DWORD64 dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
 #define SymGetLineFromAddr64   SymGetLineFromAddrW64
#endif

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromAddr SymGetLineFromAddr64
#define SymGetLineFromAddrW SymGetLineFromAddrW64
#else
BOOL
IMAGEAPI
SymGetLineFromAddr(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINE Line
    );

BOOL
IMAGEAPI
SymGetLineFromAddrW(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW Line
    );
#endif

Exemples

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

Configuration requise

Condition requise Valeur
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

SymGetLineFromName64

SymInitialize