Pengaturan debugger Windows jarak jauh antara dua PC lab
03
Pengaturan Lab
Siapkan dua mesin lab
Sesi debugger Windows jarak jauh melakukan attach debugger di satu mesin ke program di mesin lain melalui jaringan, dan ini hanya berlaku untuk mesin lab Anda sendiri. Simbol adalah prioritas utama. Namai satu mesin sebagai host dan satu lagi sebagai target. Bangun program dengan simbol debug dan simpan PDB yang cocok untuk build tersebut, karena PDB yang tidak cocok akan memberikan nama fungsi yang salah dan tumpukan tanpa simbol hanya menampilkan alamat. Instal StatusRivet di host, tempat Anda bekerja, dan biarkan target hanya untuk program yang sedang diuji. Catat setiap pengaturan yang Anda ubah di kedua mesin agar Anda dapat mengembalikannya seperti semula. Reproduksikan crash dengan input terkecil yang Anda temukan, karena kasus yang pendek menghasilkan tumpukan yang pendek dan diff yang lebih mudah. Pastikan host dan target dapat saling terhubung sebelum meminta agen melakukan apa pun, karena koneksi yang gagal sering terlihat seperti debugger yang gagal.
01
Buka folder proyek
Pilih folder dengan sumber dan file build Anda sebagai folder kerja chat, karena alat file hanya membaca dan mengedit di dalamnya. Letakkan juga tumpukan yang disimpan dan catatan di sana, agar seluruh kasus berada di satu tempat dan agen dapat membacanya semua.
02
Beralih ke Ask first
Ask first akan menjeda sebelum tindakan yang mengubah sesuatu, sehingga Anda dapat membaca setiap langkah sebelum dijalankan. Gunakan Plan only jika Anda ingin melihat langkah-langkahnya terlebih dahulu dan tidak menjalankan apa pun. Rencana bertahan setelah restart, sehingga Anda dapat kembali ke dalamnya nanti.
03
Jelaskan crash
Sebutkan program, mesin host dan target, serta gejalanya, dan katakan bahwa mesin tersebut adalah milik Anda. Berikan detail koneksi dari catatan lab Anda sendiri dan jangan menebak-nebak. Sebutkan build mana yang berjalan di target, dan PDB mana yang menjadi miliknya.
04
Periksa hasilnya
Baca diff, bangun ulang dengan perintah build Anda, dan jalankan perintah uji Anda lagi di target. Simpan catatan tentang apa yang berubah bersama daftar periksa, dan simpan dump lama jika uji baru masih gagal, sehingga upaya berikutnya dimulai dari bukti, bukan dari ingatan.
Daftar periksa sesi
StatusRivet · Attach dan simpan● Ask first
Attach ke program di target, simpan dump dan call stack, lalu baca tumpukan tersebut.
Shellattach your debugger to the targetattached
Shellsave the dump on the targetsaved
Shellwrite the call stack to stack.txtsaved
read_filestack.txtread
grep0xC0000005 stack.txt1 match
menunggu persetujuan Anda sebelum melanjutkanTolakTerima
debug-session.txt
# Debug session checklist
1. Build the app with debug symbols and keep the PDB
2. Note the build the crash happened on
3. Start the debugger on the host machine
4. Attach to the app running on the target
5. Reproduce the crash with the smallest input
6. Save a crash dump on the target
7. Save the faulting thread's call stack to stack.txt
8. Read the exception code and the top frames
9. Match the first frame to a source line
10. Propose a minimal fix and rebuild
11. Run the test again and note what changed
Daftar periksa teks biasa untuk satu sesi debugging antara dua mesin lab. Ini mencakup pembangunan dengan simbol, attach, reproduksi crash dengan input terkecil, penyimpanan dump dan call stack, pembacaan frame teratas, dan diakhiri dengan uji coba setelah perbaikan, dengan catatan tentang apa yang berubah. Salin ke folder proyek Anda dan edit agar sesuai dengan lab Anda. Salin dan edit.
Analisis crash dengan debugger Windows jarak jauh
Attach dari mesin host
Tugas: attach dari mesin host ke program Anda sendiri yang berjalan di target lab. Attach terlebih dahulu. Buka folder proyek di StatusRivet, beralih ke Ask first, dan jelaskan pengaturannya. Shell menjalankan mode baris perintah debugger Anda dengan detail koneksi yang Anda berikan, dan kartu menunjukkan apakah ia berhasil terhubung melalui kode keluar yang sebenarnya. Agen tidak menciptakan pengaturan koneksi, jadi ambil host, target, dan port dari catatan lab Anda sendiri. Debugging jarak jauh hanya untuk mesin lab Anda sendiri, bukan untuk komputer yang tidak Anda miliki. Baca kartu sebelum langkah berikutnya. Jika attach gagal, tidak ada langkah lain yang boleh dijalankan, dan Anda memperbaiki koneksi terlebih dahulu, lalu mencoba lagi. Kartu juga menyimpan perintah persis, sehingga Anda dapat mengulangnya nanti.
Simpan dump dan call stack
Tugas: setelah Anda mereproduksi crash di target dengan input terkecil, simpan buktinya. Simpan kedua file tersebut. Shell meminta debugger Anda untuk menulis crash dump dan menyimpan call stack dari utas yang menyebabkan kesalahan ke file teks, dan kartu menunjukkan kedua hasil tersebut. Entri debugger jit Windows di target memulai debugger secara otomatis ketika aplikasi crash. Itu adalah pengaturan sistem, jadi ubah hanya di mesin uji, catat nilai sebelumnya, dan kembalikan setelahnya. Untuk menemukan penyebab crash sistem dari minidump, mulailah dari call stack yang disimpan. Anda menyetujui setiap langkah dalam mode Ask first, dan Anda menyimpan kedua file tersebut dengan daftar periksa untuk orang berikutnya yang membaca kasus tersebut. Namai file berdasarkan build agar tidak ada yang mencampuradukkannya.
Samakan frame ke baris sumber
Tugas: hubungkan frame teratas ke kode Anda. Mulai dengan simbol. read_file membuka stack.txt, grep mencari proyek untuk nama fungsi dan kode pengecualian, seperti 0xC0000005 untuk access violation, dan read_file membuka file sumber di baris tersebut. Dengan PDB yang cocok, tumpukan menampilkan nama fungsi, file sumber, dan nomor baris, sedangkan tanpa PDB Anda hanya melihat alamat. Mesin yang membeku yang berakhir dengan bsod dengan kegagalan pemeriksaan keamanan kernel adalah kasus untuk rutinitas ini persis: dump, tumpukan, sumber. Baca bukti sendiri sebelum agen mengedit apa pun, karena agen bekerja dari teks dan tidak dapat melangkah melalui program untuk Anda. Untuk melangkah, gunakan debugger Anda sendiri dan beri tahu agen apa yang Anda lihat.
Usulkan perbaikan dan jalankan ulang uji
Tugas: ubah temuan menjadi perubahan. edit_file mengusulkan diff minimal, misalnya pemeriksaan null yang hilang atau indeks yang salah, dan dalam mode Ask first agen menjeda sehingga Anda dapat membaca baris yang berubah. Shell kemudian menjalankan perintah build Anda, dengan simbol, dan perintah uji Anda, dan kartu melaporkan kode keluar yang sebenarnya. Kerusakan heap mode kernel bsod dalam driver yang Anda tulis dapat muncul lama setelah penulisan yang buruk, jadi periksa buffer yang ditulis sebelumnya di tumpukan, bukan hanya frame terakhir. Pengecualian store yang tidak terduga bsod di target lab Anda ditangani dengan cara yang sama. Terima diff hanya setelah uji berhasil, dan catat apa yang berubah. Uji sebelum menerima. Jika uji masih gagal, simpan tumpukan baru dan mulai loop lagi dari langkah kedua.