Saya ingin menjalankan debugger Visual Studio pada program .Net yang telah dikaburkan. (Ini program saya sendiri - saya tidak mencoba memecahkan program orang lain.)
Saat saya mengkompilasi program dengan "System.Diagnostics.Debugger.Break()", atau jika saya melampirkan debugger ke proses yang sedang berjalan, maka debugger menampilkan "Tidak Ada Sumber yang Tersedia". Saya mengerti ini - tidak ada sumber yang sesuai dengan versi program yang dikaburkan. Tetapi ketika saya mengklik "Tampilkan Pembongkaran" itu menunjukkan jendela Pembongkaran dengan "Tidak ada pembongkaran tersedia."
Mengapa? Adakah saran tentang apa yang dapat saya lakukan agar pembongkaran dapat berfungsi?
Di bawah Opsi Debug saya mencentang "Aktifkan debugging tingkat alamat" dan "Tampilkan pembongkaran jika sumber tidak tersedia".
Terima kasih.
Sunting
Hanya untuk mencoba menjelaskan sedikit lebih banyak ...
Program yang dimaksud adalah program saya sendiri, dan program kebingungan yang digunakan juga merupakan program saya sendiri. Program kebingungan menjalankan ILAsm.exe, mengubah kode ILAsm, dan menjalankan ILAsm.exe.
Kebingungan saya rupanya menimbulkan masalah sehingga program tidak lagi berfungsi dengan benar. Untuk memahami bagaimana/mengapa itu tidak berfungsi, saya ingin melacaknya. Tetapi untuk beberapa alasan debugger Visual Studio mengatakan "Tidak tersedia pembongkaran", dan kemudian saya tidak dapat melakukan apa pun. (Ketika program yang tidak dikaburkan dijalankan di bawah Visual Studio, jendela Disassembly dapat dibuka dan menampilkan informasi yang diharapkan. Hanya versi yang dikaburkan yang menghasilkan masalah ini dengan debugger VS.)
Sunting 2
Belum dapat menemukan jawaban atas pertanyaan saya, tetapi saya punya solusi sekarang.
Saya telah menginstal WinDbg dan mengonfirmasi bahwa itu dapat dilampirkan ke program saya yang dikaburkan dan setidaknya dapat melakukan satu langkah dan menunjukkan lokasi eksekusi saat ini di jendela pembongkaran. Tapi saya belum pernah menggunakan WinDbg sebelumnya, dan sepertinya agak menakutkan.
Saya juga mengikuti saran melihat beberapa tempat untuk memuat sos.dll ke WinDbg. Mungkin itu akan membantu.
Namun saya menduga apa yang sebenarnya akan saya lakukan adalah memasukkan banyak pernyataan logging sementara ke dalam program saya di tempat-tempat yang tidak berfungsi, dan mudah-mudahan mendapatkan pemahaman dengan cara itu.