2010-09-17 16 views
6

Bazı C++ ve C# kodlarından oluşan uygulamamı yeni oluşturdum ve başka bir makineye kurdum. Uzak hata ayıklayıcısını bağladığımda, C++ kodunu hata ayıklayabilir ve adım adım ilerleyebilirim. Ancak, C# kodunda hata ayıklamaya çalıştığımda, semboller yüklenmiyor gibi görünüyor. Modüller bölmesini görsel stüdyonun içine getirmeyi denedim ve doğru .pdb dosyasına göz attım, ama sadece eşleşmediğini söyleyen bir mesaj kutusu alıyorum.Sembollerim neden (pdb) yerel bir yoldan yüklenmiyor?

Bunun neden olduğunu anlayamıyorum. Buradan chkmatch kullandım: http://www.debuginfo.com/tools/chkmatch.html - seçtiğim .exe ve .pdb'nin eşleştiğini bildiriyor.

Tüm kaynağımı sildim, getirdim ve her şeyi yeniden oluşturdum, bu yüzden eminim ki eski bir yanlışlık var .pdbs.

Bu soruyu cevapladım The Symbol file MyFile.pdb does not match the module Ancak, yerel sembollerin eşleşmemesi daha çok şey. Yerel sembollerim eşleşiyor, sembollerin eşleşmeyi reddettiği sadece .net meclisleri.

Kontrol edilmesi gerekenler için herhangi bir öneri çok hoş olurdu.

Teşekkürler.

Güncelleme: Şimdi yüklenecek sembolleri almayı başardım! Ancak ... çözüm, sembol dosyalarını uzak bilgisayara kopyalayıp uzaktaki makinede .exe ve dll'ler ile aynı klasöre yerleştirmekti. Visual Studio, bunları yerel makinemden yüklemeyi reddediyor gibi görünüyor. Modüller penceresindeki modüle sağ tıklarsam ve 'Symbol Load Information ...' seçeneğini seçersem, bu sembolleri yüklemeye çalıştığı yolları gösterir ve bu, pdb dosyalarının benim için doğru yerel yolları içerir. makinesi. Pdbs için güvenlik ve erişim denetimi özelliklerine baktım ve herkese tüm erişim izinlerini verdim.

Bu gerçekten kafa karıştırıcıdır, geçmişte eminim ki sembolleri yükleyebildim. Değişen bir şey düşünemiyorum, bu aniden çalışmanın durmasına neden olur.

Neden Visual Studio sembolü yerel makinemden yüklemeyi reddediyor?

+0

Dosyaları nasıl imzalarsınız? –

+0

SDK'dan signtool.exe'yi kullanma.signtool sign/v/ph/f "myCertfile.pfx"/p myCertfilePassword/t "http://timestamp.verisign.com/scripts.timestamp.dll" MyExeToSign.exe –

+0

İmzalamayı deneyip devre dışı bırakacağım sonra ne olduğunu görmek için tekrar. –

cevap

8

Budur. .NET uzaktan hata ayıklama için PDB'ler her zaman uzak makineden yüklenir. Geçmişte pdb'leri uzak makineye kopyaladım, ama unutmuştum.

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/26/visual-studio-remote-debugging-and-pdb-files.aspx


Ah. Neden bir süredir pdb'lerin uzaktaki makinenin kopyasını yapmayı hatırlamam gerektiğini biliyordum. Uzak makinede yerel makineye bir sürücüyü eşleyen bir ağ klasörü eşlemesi yaptım ve bu yolu çözmek için kullanıldı. Yerel bir sürücüm var S: Tüm kaynak kodumu saklıyorum ve uzak makinede S: 'yi sürmek için her şey çalışıyordu. Sanırım bu eşlemeyi yeniden ekleyeceğim ve pdb'leri el ile kopyalamaya gerek kalmadan hata ayıklayabileceğim.

Uzaktan hata ayıklama yönetilen kod için kullanışlı bir numara gibi görünüyor. Sadece bunu yaptığımı fark etmemiştim!