web-gelistirme-sc.com

Çağrı yığındaki "harici kod" ne anlama geliyor?

Visual Studio'da bir yöntem çağırırım ve çağrı yığınını gözden geçirerek hata ayıklamayı denerim.

İçindeki satırların bazıları "Dış kod" olarak işaretlenmiştir.

Bu tam olarak ne anlama geliyor? Bir .dll Yöntemleri yürütüldü?

Salak soru; ancak kesin bir cevaba ihtiyacım var.

23
Simon Kiely

Bunlar, sembol bilgisi 'nin şu anda Visual Studio Debugger için uygun olmadığı satırlardır. Başka bir deyişle Debugger, yürütülen satırdan kod alamıyor.

şu anda yazdım çünkü sembol bilgisi indirilebiliyor ya da kurulabiliyor.

Daha fazla bilgi için şunu okuyabilirsiniz: Nasıl yapılır: Sembol Konumlarını Belirleme ve Yükleme Davranışı

13
Tigran

[Dış kod], bu dll için hiçbir hata ayıklama bilgisi bulunmadığı anlamına gelir.

Yapabilecekleriniz Call Stack penceresinde farenin sağ düğmesine tıklayın. Ardından Show External Code seçin, bu [Dış Kod] genişletecek ve size çağrılan modülleri gösterecektir.

enter image description here

genişletildikten sonra çağrılan dll’leri göreceksiniz, diskte konum bulabileceğiniz Symbol Load Information...

enter image description here

Bu diskteki konumları gösteren bir iletişim kutusu açacaktır.

enter image description here

Bu harici dosyalarda hata ayıklamak istiyorsanız, dll'ler için .pdb dosyalarını almanız ve .dll ile aynı klasöre yerleştirmeniz gerekir.

bu, Load symbols (Symbol Load Information üstündeki ekran görüntüsü 2'deki menü) ve hata ayıklamaya başlamanıza izin vermelidir.

Burada .pdb dosyalarını alma konusunda daha fazla bilgi.

Ve işte gerçek bir EF .pdb örneği üretiliyor

Umarım bu size biraz zaman kazandırır.

28

'Dış Kod' yazısı, 'Kodum'a ait olmayan her şeye işaret eder.

Buradaki MSDN belgelerinde açıklandığı şekildedir Nasıl yapılır: Çağrı Yığını Penceresini Kullanma

Yönetilen kodda, varsayılan olarak. Çağrı Yığını penceresi, kullanıcı olmayan kod için bilgileri gizler. > Gizli bilgi yerine aşağıdaki gösterim belirir.

<[Dış Kod]>

Kullanıcı olmayan kod "Kodum" olmayan bir koddur.

Your Code, yazdığınız her şeyi kendi başınıza düşündüğünüz gibi. Bu nedenle, bu tanımla birlikte dış dll'ye ait olan her şey çağrı yığınının izinde göz ardı edilir.

Bundan başka Nasıl yapılır: Sadece Kodumun İçine Girin hata ayıklayıcısını kullanıcı olmayan kodu izlemeye çalışmak için reddetme olanağınız var.

Burada user code öğesinin gerçekte ne olduğu ile ilgili bir açıklama bulacaksınız:

Kullanıcı kodunu kullanıcı olmayan koddan ayırt etmek için Just My Code, üç şeye bakar: DBG Dosyaları, PDB dosyaları ve optimizasyon.

4
marc wellman

Bu satırlara, şu anda yüklediğiniz hata ayıklama sembolleri tarafından başvuruda bulunulmaz.

Bu kod harici bir DLL dosyasının veya CLR içindeki yerel kodun bir parçası olabilir. Hangi modül olduğunu biliyorsanız ve onlar için hata ayıklama sembolleri varsa, bunları Visual Studio'ya manuel olarak yükleyebilirsiniz.

2
Polynomial

Kodunuz/sembolleriniz yok. .NET framework veya 3. parti meclisleri gibi.

0
Wolfgang Ziegler

ana Bilgisayar uygulamanızın çalışan örneğini ayıklamak için Hata Ayıkla menüsünde İşlem Yapma eylemini kullanabilirsiniz. (çalışan işlem hata ayıklama sembollerine sahiptir.

0
Aghilas Yakoub