Menggunakan DBH
DBH adalah alat baris perintah yang mengekspos banyak fungsi dalam API DbgHelp (dbghelp.dll). Ini dapat menampilkan informasi tentang konten file simbol, menampilkan detail spesifik simbol dalam file, dan mencari melalui file untuk simbol yang cocok dengan berbagai kriteria. Untuk informasi selengkapnya, lihat Pustaka Bantuan Debug.
Fungsionalitas yang disediakan oleh DBH mirip dengan yang disediakan dalam WinDbg, KD, dan CDB oleh perintah seperti x (Examine Symbols).
Menjalankan DBH dalam Mode Interaktif
Anda memulai DBH dengan baris perintah sederhana, di mana Anda menentukan modul target yang simbolnya ingin Anda selidiki. Modul target dapat berupa program EXE atau file simbol PDB. Anda juga dapat menentukan ID proses (PID) untuk diselidiki. Lihat Opsi Baris Perintah DBH untuk sintaks lengkapnya.
Ketika DBH dimulai, DBH memuat simbol untuk modul yang ditentukan, lalu memberi Anda perintah di mana Anda dapat mengetik berbagai perintah. Lihat Perintah DBH untuk daftar perintah yang tersedia.
Misalnya, urutan berikut memulai DBH dengan menentukan proses target dengan ID proses 4672, lalu menjalankan perintah enum pada prompt DBH untuk menampilkan simbol yang cocok dengan pola tertentu, lalu menjalankan perintah q untuk keluar dari DBH:
C:\> dbh -p:4672
400000 : TimeTest
77820000 : ntdll
77740000 : kernel32
pid:4672 mod:TimeTest[400000]: enum TimeTest!ma*
index address name
1 42cc56 : main
3 415810 : malloc
5 415450 : mainCRTStartup
pid:4672 mod:TimeTest[400000]: q
goodbye
Menjalankan DBH dalam Mode Batch
Jika Anda hanya ingin menjalankan satu perintah DBH, Anda dapat menentukannya di akhir baris perintah. Hal ini menyebabkan DBH dimulai, memuat modul yang ditentukan, menjalankan perintah yang ditentukan, lalu keluar.
Misalnya, contoh sebelumnya dapat diganti dengan satu baris perintah:
C:\> dbh -p:4672 enum TimeTest!ma*
400000 : TimeTest
77820000 : ntdll
77740000 : kernel32
index address name
1 42cc56 : main
3 415810 : malloc
5 415450 : mainCRTStartup
Metode menjalankan DBH ini disebut mode batch, karena dapat dengan mudah digunakan dalam file batch. Versi baris perintah ini juga dapat diikuti oleh pipa ( | ) yang mengalihkan output DBH ke program lain.
Menentukan Target
DBH dapat memilih target dengan tiga cara: dengan ID proses dari proses yang sedang berjalan, dengan nama yang dapat dieksekusi, atau dengan nama file simbol. Misalnya, jika ada tepat satu instans MyProg.exe yang saat ini berjalan, dengan ID proses 1234, maka perintah berikut hampir setara:
C:\> dbh -v -p:1234
C:\> dbh -v c:\mydir\myprog.exe
C:\> dbh -v c:\mydir\myprog.pdb
Salah satu perbedaan antara perintah ini adalah ketika Anda memulai DBH dengan menentukan ID proses, DBH menggunakan alamat virtual aktual yang digunakan oleh proses ini. Saat Anda memulai DBH dengan menentukan nama yang dapat dieksekusi atau nama file simbol, DBH mengasumsikan bahwa alamat dasar modul adalah nilai standar (misalnya, 0x01000000). Anda kemudian dapat menggunakan perintah dasar untuk menentukan alamat dasar yang sebenarnya, sehingga menggeser alamat semua simbol dalam modul.
DBH tidak melekat pada proses target dengan cara yang dilakukan debugger. DBH tidak dapat menyebabkan proses dimulai atau berakhir, juga tidak dapat mengubah cara proses tersebut berjalan. Agar DBH melampirkan ke proses dengan ID prosesnya, proses target harus berjalan, tetapi setelah DBH dimulai, proses target dapat dihentikan dan DBH akan terus mengakses simbolnya.
Simbol Yang Didekorasi dan Tidak Terdekorasi
Secara default, DBH menggunakan nama simbol yang tidak terdekorasi saat menampilkan dan mencari simbol. Jika Anda menonaktifkan opsi simbol SYMOPT_UNDNAME , atau menyertakan opsi -d pada baris perintah DBH, dekorasi akan disertakan.
Untuk informasi tentang dekorasi simbol, lihat Simbol Publik dan Privat.
Keluar dari DBH
Untuk keluar dari DBH, gunakan perintah q pada prompt DBH.