Bagikan melalui


Fungsi _EFN_StackTrace

Menyediakan representasi teks dari penelusuran tumpukan terkendali dan array rekaman CONTEXT, satu untuk setiap transisi antara kode tidak terkendali dan terkendali.

Sintaks

HRESULT CALLBACK _EFN_StackTrace(
    [in]  PDEBUG_CLIENT  Client,
    [out] WCHAR          wszTextOut[],
    [out] size_t         *puiTextLength,
    [out] LPVOID         pTransitionContexts,
    [out] size_t         *puiTransitionContextCount,
    [in]  size_t         uiSizeOfContext,
    [in]  DWORD          Flags
);

Parameter

Client [di] Klien sedang di-debug.

wszTextOut [out] Representasi teks pelacakan tumpukan.

puiTextLength [out] Penunjuk ke jumlah karakter dalam wszTextOut.

pTransitionContexts [out] Array konteks transisi.

puiTransitionContextCount [out] Penunjuk ke jumlah konteks transisi dalam array.

uiSizeOfContext [di] Ukuran struktur konteks.

Flags [di] Atur ke 0 atau SOS_STACKTRACE_SHOWADDRESSES (0x01) untuk menampilkan register EBP dan masukkan penunjuk tumpukan (ESP) di depan setiap module!functionname baris.

Keterangan

Struktur _EFN_StackTrace dapat dipanggil dari antarmuka terprogram WinDbg. Parameter yang digunakan sebagai berikut:

  • Jika wszTextOut adalah nol dan puiTextLength bukan nol, fungsi akan mengembalikan panjang string dalam puiTextLength.

  • Jika wszTextOut bukan nol, fungsi menyimpan teks dalam wszTextOut hingga lokasi yang ditunjukkan oleh puiTextLength. Ini berhasil kembali jika ada cukup ruang di buffer, atau mengembalikan E_OUTOFMEMORY jika buffer tidak cukup lama.

  • Bagian transisi dari fungsi diabaikan jika pTransitionContexts dan puiTransitionContextCount keduanya null. Dalam hal ini, fungsi menyediakan pemanggil dengan output teks hanya nama fungsi.

  • Jika pTransitionContexts adalah nol dan puiTransitionContextCount bukan nol, fungsi mengembalikan jumlah entri konteks yang diperlukan dalam puiTransitionContextCount.

  • Jika pTransitionContexts bukan nol, fungsi akan memperlakukannya sebagai array struktur dengan panjang puiTransitionContextCount. Ukuran struktur diberikan oleh uiSizeOfContext, dan harus berukuran SimpleContext atau CONTEXT untuk arsitekturnya.

  • wszTextOut ditulis dalam format berikut:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Jika offset dalam hex adalah 0x0, tidak ada offset yang ditulis.

  • Jika tidak ada kode terkelola di utas saat ini dalam konteks, fungsi mengembalikan SOS_E_NOMANAGEDCODE.

  • Parameter Flags adalah 0 atau SOS_STACKTRACE_SHOWADDRESSES untuk melihat EBP dan ESP di depan setiap baris module!functionname. Secara default, ini adalah 0.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: SOS_Stacktrace.h

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga