Ok, saya baru saja memverifikasi bahwa saya dapat melangkah melalui kode menggunakan proses ini. Saya melakukan ini di ArcMap, tapi saya pikir itu harus berlaku untuk ArcCatalog karena prosesnya berkaitan dengan debugging DLL dan bukan item spesifik ESRI. Saya mengkonfirmasi ini di kedua ArcMap 10.2.2 dan ArcCatalog 10.2.2. Karena ini adalah proses Windows yang berurusan dengan DLL secara langsung, versi perangkat lunak ESRI seharusnya tidak masalah.
Saya menggunakan Visual Studio untuk Melampirkan ke Proses .
Saya dapat melangkah melalui ekstensi terkompilasi (DLL) menggunakan proses ini ketika DLL dipanggil dalam program lain.
Inilah yang saya lakukan ...
Di Visual Studio, buka proyek ekstensi Anda. Saya membangun ekstensi saya di VS 2010 C # Express, tetapi saya menggunakan VS 2013 Ultimate untuk melakukan ini. Saya tidak yakin apakah Lampirkan ke Proses adalah opsi di versi Express 2010. Saya tidak melihatnya, tetapi itu bisa disembunyikan di suatu tempat karena itu adalah versi Express.
Buka produk ESRI Anda dan instal add-in. Sekarang, kembali ke VS, klik Lampirkan ke Proses dan pilih proses produk ESRI Anda. Milik saya adalah ArcMap.exe . Dari sini, Visual Studio harus melampirkan debugger-nya ke program dan ketika DLL dijalankan yang telah Anda buka dan breakpoint ditetapkan, program itu akan berhenti di sana. Ini akan bertindak seperti program lain yang Anda debug di Visual Studio. Ini mungkin meregangkan beberapa debugging ke beberapa item ESRI meskipun kode kemungkinan besar dikaburkan jadi tidak begitu berguna.
Saya memastikan saya menginstal add-in dari direktori Release saya untuk proyek saya. Sejauh yang saya tahu, ESRI tidak menyalin DLL ke salah satu foldernya, tetapi mereka menggunakan Utilitas Pendaftaran Majelis Esri untuk mendaftarkan lokasi DLL sehingga sistem tahu di mana menemukannya ketika direferensikan dari produk ESRI.
FYI: Saya menggunakan proses ini untuk men-debug perpustakaan kelas yang saya tulis di satu proyek yang sedang digunakan di yang lain. Teori yang sama di sana harus menerapkan add-in ESRI karena hanya perpustakaan kelas (DLL) yang dipanggil ke program lain. Selain dari Visual Studio, saya percaya Windows debugger lain harus dapat dilampirkan ke DLL.
HARAP posting komentar yang satu ini. Saya pikir ini akan bekerja untuk sementara waktu dan saya sangat ingin tahu bagaimana orang lain adil dengan metode ini.
EDIT Saya baru saja membuat add-in ArcCatalog baru, yang terdiri dari tombol sederhana. Saya menambahkan tugas string string stophere = "debugger stopped!";
dalam event handler untuk acara klik tombol. Melalui ArcCatalog, berhenti menggunakan metode Lampirkan ke Proses . Info Visual Studio 2010 tentang prosesnya ada di sini .
Ada beberapa hal di MSDN tentang debugging DLL melalui berbagai metode di Visual Studio dan Windows Debugger. Saya pribadi menemukan Lampirkan ke Proses lebih baik daripada memulai metode program eksternal dan juga lebih baik daripada menggunakan debugger jarak jauh .
Satu-satunya downside ke metode ini adalah bahwa Anda kehilangan pendekatan F5 di mana Anda men-debug langsung dari dalam Visual Studio. Jadi itu berarti, buat perubahan pada kode Anda, instal pembaruan, mulai ArcCatalog, Lampirkan ke Proses, lalu tekan titik istirahat Anda. Namun, saya menemukan bahwa metode ini cukup bagus untuk diketahui jika Anda mengalami masalah seperti yang Anda miliki. Proses ini mungkin sedikit lebih lama, tetapi ini adalah metode yang pasti untuk mendapatkan hasil Anda.