2009-11-16 24 views
31

C++'da yazılan ve C# uygulamasından çağrılan bir DLL var. DLL yönetilmeyen koddur. Ben C# Uygulamanın ayıklama yürütme dir için bir post inşa olayla DLL ve .pdb dosyaları kopyalamak iseYönetilmeyen Dll'den Hata Ayıklanamadı C#

Hala DLL koduna koymak herhangi kırılma noktaları vurmak olamaz. Mola noktasında "bu belge için semboller yüklenmemiş" yazan bir mesaj var.

dll kaynağındaki hata ayıklamasını almak için başka neler yapmalıyım?

Ben "Tools ->Options ->Debugging ->General ->Enable sadece kodum" Engelli. DLL "Runtime izleme ve devre dışı optimizasyonlar (/ ASSEMBLYDEBUG)" ile derlenmiş ve hata ayıklama bilgileri oluşturmak ediliyor "Evet (/ DEBUG)" Sen yönetilmeyen (Yerli) ayıklamayı etkinleştirmek için gereken

cevap

55

C++ DLL'nize hata ayıklamak için, çözümünüzdeki başlangıç ​​uygulamasında karma mod hata ayıklamasını etkinleştirmeniz gerekir.Bu, bir F5 tarzı senaryo için yerli koduna hata ayıklama sağlayacak

"yönetilmeyen kod hata ayıklamayı etkinleştir" > Özellikleri

  • git Debug Sekme
  • Kontrol -

    • sağ projeyi tıklayın . işleme eklemeden için etkinleştirmek istiyorsanız o zaman süreç yukarıdaki "Seç ..." düğmesine
    • tıklayın hata ayıklamak için süreci seçin Dialog

      • "işleme Ekle" aşağıdakileri yapın liste
      • tıklayın "hata ayıklama bu kod türleri"
      • Kontrol Yönetilen ve
  • +0

    "tam olarak orijinal versiyonunu maç için kaynak dosyalarını gerektir", ben değildim' Çok basit olup olmadığından emin ol. Bu kadar basitse, yerel kodla arabirim oluşturan yönetilen C++ kodunu ayıklamaya çalışırken büyük olasılıkla her zaman kötüye kullandım. –

    +2

    Başlangıç ​​projeniz aslında C++ DLL dosyasını çağıran başka bir C# DLL projesi kullanıyorsa, başlangıç ​​projesinde "Yönetilmeyen kod hata ayıklamasını etkinleştir" açık olmalıdır. –

    +2

    Çözüm Gezgini'nde çözüm seçin. Aşağıdakilerden birini seçin: Menü | Araçlar | seçenekler | Hata ayıklama | Genel ve İşaretleyin "Kaynak dosyaların tam olarak orijinal sürümle eşleşmesini isteyin" – Martin

    4

    için.

    başlatıldıktan sonra işleme eklemeden ediyorsanız: Araçlar menüsüne

    Git ve sonra yerli ayıklama etkin olduğundan emin olun işleme ekleme.

    eklemek: Yönetilen kod, Yerli kod [Seç]

    emin Yerli kod orada listelenen olun

    Sen salt okunur bir düzenleme kutusu göreceksiniz. Eğer eklemezseniz.

    görsel stüdyosu içinden projenizi başlıyor ise: Eğer hata ayıklama modunda başlıyor proje özelliklerinde On

    . Proje Özellikleri'ne gidin ve ardından hata ayıklama sekmesini seçin.

    emin Bu onay kutusu işaretli olduğundan emin olun: debug bir işleme iliştirdiğinizde

    yönetilmeyen kod hata ayıklama

    1

    etkinleştirme, sen eklemek istediğiniz nasıl belirtmeniz gerekir. Yönetilen ve Yerel olan birkaç seçeneğiniz var. C# kodunun yönetilmeyen C++ ile hata ayıklanması için, Yönetilen ve Yerel olarak bir sürece eklemeniz gerekir (her ikisi de aynı anda seçilebilir).

    0
    Yerli

    aynı sorunla karşı karşıya olduğunu hem de tüm kabul cevap önerildi ama yönetilmeyen dll kırılma noktaları değildi getti vur!

    Ancak, en son ne zaman ben dll hata ayıklama yapabilirim!

    Solution Explorer Menüsü gelen
    Seç içinde

    seç çözüm | Araçlar | seçenekleri | Debugging'ı | Genel
    işareti kaldırın Bu cevap verecek iken

    İlgili konular