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


Функция SymGetLineFromInlineContextW (dbghelp.h)

Находит исходную строку для указанного встроенного контекста.

Синтаксис

BOOL IMAGEAPI SymGetLineFromInlineContextW(
  [in]           HANDLE            hProcess,
  [in]           DWORD64           dwAddr,
  [in]           ULONG             InlineContext,
  [in, optional] DWORD64           qwModuleBaseAddress,
  [out]          PDWORD            pdwDisplacement,
  [out]          PIMAGEHLP_LINEW64 Line
);

Параметры

[in] hProcess

Дескриптор процесса, который был первоначально передан в функцию SymInitialize.

[in] dwAddr

Адрес, для которого должна находиться строка. Адрес не требуется находиться на границе строки. Если адрес отображается после начала строки и до конца строки, она найдена.

[in] InlineContext

Встроенный контекст.

[in, optional] qwModuleBaseAddress

Базовый адрес модуля.

[out] pdwDisplacement

Смещение в байтах с начала строки или ноль.

[out] Line

Указатель на структуру IMAGEHLP_LINE64.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение TRUE.

Если функция завершается ошибкой, возвращаемое значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Вызывающий объект должен правильно выделить буфер строки и заполнить необходимые элементы структуры IMAGEHLP_LINE64 перед вызовом SymGetLineFromInlineContext.

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

Все функции DbgHelp, такие как этот, являются одним потоком. Таким образом, вызовы из нескольких потоков в эту функцию, скорее всего, приведет к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все одновременные вызовы из нескольких потоков в эту функцию.

Чтобы вызвать версию этой функции Юникода, определите DBGHELP_TRANSLATE_TCHAR. SymGetLineFromInlineContext определяется следующим образом в Dbghelp.h.

BOOL
IMAGEAPI
SymGetLineFromInlineContextW(
    _In_ HANDLE hProcess,
    _In_ DWORD64 dwAddr,
    _In_ ULONG InlineContext,
    _In_opt_ DWORD64 qwModuleBaseAddress,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
 #define SymGetLineFromInlineContext SymGetLineFromInlineContextW
#endif

Заметка

Заголовок dbghelp.h определяет SymGetLineFromInlineContext как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка dbghelp.h
библиотеки DbgHelp.lib
DLL DbgHelp.dll
распространяемый DbgHelp.dll 6.2 или более поздней версии