2011-03-13 64 views
9

içinde ara dil (C) ve C# ile hata ayıklama Visual Studio için bir uzantısı arıyorum, burada hata ayıklama modunda C# yanında ara dilde tek bir adım yapmak mümkündür.Aynı anda Visual Studio

Yönetilen ve yönetilmeyen kod hatalarını ayıklamak için bir çözüm aramıyorum.

+0

Bunu bulmakta zorlanacaksınız. Makine kodunun tekrar IL'ye eşlenmesi, kesiksiz ve titremeye fazlasıyla bağımlıdır. Birden fazla var. Varsa böyle bir seçeneğin soğukluğu için –

+0

+1. –

cevap

6

Amacınız nedir? IL'niz C# derleyicisi tarafından oluşturuldu mu veya dinamik olarak çalışma zamanında mı üretildi? Birincisi ise, binary'nizi ilasm üzerinden yeniden derlemenin bir hilesi kullanabilirsiniz.

  1. C# kodunu normalde yaptığınız gibi derleyin. Optimize olsun ya da olmasın fark etmez, ancak tam PDB sembolleri üretmek için derleme seçeneğini belirtmeniz gerekir.
  2. İkilinizi .il dosyasına dönüştürmek için ildasm kullanın. Menüde Dump seçeneğidir.
  3. Yeni bir ikili almak .il dosyası (ve yeni semboller) .il

    ILASM yeniden derlemek | bu özel montaj Eğer ayıklarken

  4. Şimdi [/ exe/dll]/ayıklama C# kodu yerine IL kodunu görecektir. Dinamik olarak oluşturulmuş IL durumunda, adım 2.

uygun seçeneği seçmek durumunda da orijinal C# dosyadan eşleşen bir satır göreceksiniz, ben sadece WinDbg with SOS extension kullanmak. IL'yi dökülebilir ve içinden geçebilir, ama alışması biraz zaman alır.

+0

Lütfen daha spesifik 2. seçenekte olabilir misiniz? "Uygun seçeneği seç" ne demek istiyorsun? – RayOldProf

0

Burada harici bir disassembler gerekli olduğunu sanmıyorum. VS 2010'da hata ayıkladığınızda (Express olmasa da) kod penceresine sağ tıklayabilir ve IL kodunu değiştirmek için “Disassembly'a git” seçeneğini seçebilirsiniz. Aradığın şey bu olabilir mi? Devamını oku here

+8

Bu, IL değil. Jitted kodunun montaj versiyonu. –