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


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

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

Синтаксис

BOOL IMAGEAPI SymGetLineFromInlineContext(
  [in]           HANDLE           hProcess,
  [in]           DWORD64          qwAddr,
  [in]           ULONG            InlineContext,
  [in, optional] DWORD64          qwModuleBaseAddress,
  [out]          PDWORD           pdwDisplacement,
  [out]          PIMAGEHLP_LINE64 Line64
);

Параметры

[in] hProcess

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

[in] qwAddr

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

[in] InlineContext

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

[in, optional] qwModuleBaseAddress

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

[out] pdwDisplacement

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

[out] Line64

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

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

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

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

Комментарии

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

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

Все функции 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

Требования

   
Целевая платформа Windows
Header dbghelp.h
Библиотека DbgHelp.lib
DLL DbgHelp.dll
Распространяемые компоненты DbgHelp.dll 6.2 или более поздней версии