2009-01-22 23 views
11

Üçüncü taraf bir çerçeve ile çalışıyorum ve kod oldukça kötüyüm ve anlayamadığım istisnalar alıyorum. Ben .NET Reflector kullanarak decompile başardı ve şimdi Deblector kullanarak hata ayıklamaya çalışıyorum, ama bir breakpoint kümesi nasıl anlamaya bile edemiyorum. Bu araç için neden belge yok?Deblector nasıl kullanılır?

Nasıl kullanılacağı hakkında hiçbir şey yok. Yerleşik yardım, standart hata ayıklama komutları oldukları gibi, sadece iyi anladığım komutların bir listesini verir ... ama nasıl çalıştığını anlayamıyorum, bu yüzden koddan geçebilir ve değişkenleri de inceler.

Uzun zamandır geziniyorum ve bulabildiğim her şey bu aracın ne kadar harika olduğunu söyleyen bloglar. Şey, işe yarayabilseydim oldukça havalı olacağına eminim. Belgeler nerede veya bir kesme noktası nasıl belirlenir?

İşlemime ekleyebiliyorum, ancak duraklatamam ya da herhangi bir şey yapamıyorum ve bu seçeneği etkinleştirmiş olmama rağmen istisna olduğunda kırılmıyor.

Cidden ... bazı belgeler yapmalıyız - Google'ın ulaşabileceği bir yere yayınlayacağım. Her şeyden

Önce http://www.codeplex.com/deblector dan itibaren DeblectorAddin-1,01-Alpha (çok eski sürümlerde böyle çalışırsa bilmiyorum) kullanıyorum:

cevap

8

Belki bu size yardımcı olacaktır.

  • bir işlem komut doğrultusunda [ttach] komutu ile

    • iliştirin: Bu versiyonda

      , bu aşağıdaki prosedür ile oldukça basit bir <pid>.

    • Araç çubuğundaki ek düğmesini kullanma (içinde vites bulunan pencere).
  • Ek başarılıysa (bunu konsolda görüyorsanız, Tools-> Deblector ile etkinleştirilir), başvurulan tüm derlemeler yüklenmelidir.

    • b [reak] komutunu kullanarak: bir kesme noktası ayarlama

    • (bir kırılma noktasını ayarlamak için bir program durduruldu gerekir), örneğin b <Namespace.Class.Function> - bunun için daha fazla seçenek vardır yardım b bunun için.

    • Çok daha basit: Ara düğmesini kullanın (veya F9) ve Deblector IL görünümünde bir satır seçin.

Ek kullanım notlar:

Deblector Commandline:
şu anda bir süreç bağlandığı takdirde komut satırı yanıt vermez ve koşma, yapmalısın İlk önce durun veya düzgün yanıt vermeyecektir. 64-bit platformlar için

: Uygulama 32 bitlik bir uygulama olarak çalıştırmak için ayarlanmalıdır ya da bağlı olamaz
. Visual Studio

: Projesi -> Özellikler -> Platform hedef oluşturun: x86 corflags aracı ile

: Bu, Visual Studio ile yüklü olmalıdır (Visual Studio komut istemini kullanın).

To set 32-bit mode: corflags <ProgramName> /32BIT+ To unset it: corflags <ProgramName> /32BIT- 

süreç kimliğini bulmak ve bir program 32 veya 64 bit modunda çalışır kontrol etmek için:
Process Explorer bunun için çok yararlıdır.

+0

... Sonunda onu anlamaya, ama ben bu soruya unutmuşum. Belki gelecekte başkalarına yardımcı olacaktır! Teşekkürler! – Jasmine

+0

"Bir mola noktasını ayarlamak için programı durdurmuş olmalısın" ile ne demek istiyorsun? Bir kesme noktası ayarlayan bir programı nasıl durdurabilirim? "Bir kesme noktası belirlemek için öncelikle bir kesme noktası ayarlamanız gerekir" demek gibi! –

+0

Bir programı mevcut konumda durdurabilirsiniz, programın "kırdığı" noktanın daha sonra yönerge göstericisinin olduğu anda nerede olduğunu gösterir. – Fionn

0

Şu anda bunu yapan Reflektör Pro var. Yönetilen derlemeleri C# veya VB.NET'e dönüştürür ve gerekli PDB'leri oluşturur. Ardından, kesme noktalarını ayarlayabilir ve beğendiğiniz yönetilen bir gruba adım atabilirsiniz. Yeterince İyi

http://www.red-gate.com/products/reflector/walkthrough.htm

+0

Evet, teşekkürler Jason! Bunu kullanıyoruz, ama ödemeye değmez bulduk. Artık sistemimizi kurup çalıştırdığımıza göre, gerçekten zor problemler çoğunlukla çözülüyor ve satıcı kodu çok sık hata ayıklamaya gerek yok. Ama yapabileceğimizi bilmek güzel – Jasmine