Bagikan melalui


Fungsi SymGetLineFromAddr (dbghelp.h)

Menemukan baris sumber untuk alamat yang ditentukan.

Sintaks

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

Parameter

[in] hProcess

Handel ke proses yang awalnya diteruskan ke fungsi SymInitialize .

[in] dwAddr

Alamat tempat baris harus berada. Alamat tidak perlu berada di batas baris. Jika alamat muncul setelah awal baris dan sebelum akhir baris, baris ditemukan.

[out] pdwDisplacement

Perpindahan dalam byte dari awal baris, atau nol.

[out] Line

Penunjuk ke struktur IMAGEHLP_LINE64 .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Pemanggil harus mengalokasikan buffer Baris dengan benar dan mengisi anggota struktur IMAGEHLP_LINE64 yang diperlukan sebelum memanggil SymGetLineFromAddr64.

Fungsi ini mengembalikan penunjuk ke buffer yang mungkin digunakan kembali oleh fungsi lain. Oleh karena itu, pastikan untuk segera menyalin data yang dikembalikan ke buffer lain.

Semua fungsi DbgHelp, seperti ini, adalah utas tunggal. Oleh karena itu, panggilan dari lebih dari satu utas ke fungsi ini kemungkinan akan mengakibatkan perilaku tak terduga atau kerusakan memori. Untuk menghindari hal ini, Anda harus menyinkronkan semua panggilan bersamaan dari lebih dari satu utas ke fungsi ini.

Untuk memanggil versi Unicode dari fungsi ini, tentukan DBGHELP_TRANSLATE_TCHAR. SymGetLineFromAddrW64 didefinisikan sebagai berikut dalam 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

Fungsi ini menggantikan fungsi SymGetLineFromAddr . Untuk informasi selengkapnya, lihat Dukungan Platform yang Diperbarui. SymGetLineFromAddr didefinisikan sebagai berikut dalam 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

Contoh

Misalnya, lihat Mengambil Informasi Simbol menurut Alamat.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header dbghelp.h
Pustaka Dbghelp.lib
DLL Dbghelp.dll
Redistribusi DbgHelp.dll 5.1 atau yang lebih baru

Lihat juga

Fungsi DbgHelp

IMAGEHLP_LINE64

SymGetLineFromName64

SymInitialize