2010-09-18 24 views
5

Visual Studio 2008 kullanıyorum. Projemde bazı DLL dosyalarını ayıklamam gerekmez, bu nedenle Visual C++ programında hata ayıklama yaparken sembol yüklemeyi devre dışı bırakabilir miyim? Hata ayıklama sırasında başlatma zamanını daha hızlı hale getirmeye yardımcı olur mu?Visual C++ programında hata ayıklama işlemi nasıl yapılır?

Sembollerin hepsi yereldir, bu yüzden bu yavaş yükleme sorunum yok, sadece hata ayıklamayı daha hızlı ve daha hızlı yapmak istiyorum. Örneğin, Qt kitaplıklarını kullanıyorum, "Hata Ayıklama Başlatılıyor" a bastığımda, Çıktı penceresi Qt kitaplıklarının simgelerinin yüklendiğini gösterir. VS bu sembolleri yüklemeyi durdurabilirse, hata ayıklama başlangıç ​​zamanı daha hızlı olmalıdır. Tabii ki hala VS'nin çalıştırılabilirim için sembol yüklemesini istiyorum.

cevap

0

'Başlangıç' ile ne demek istediğinden emin değilim. Asıl uygulamanın başlatılması hakkında konuştuğunuzu varsayalım. Hedef uygulamayı başlatma süresi, başlattığınız moda bakılmaksızın pahalıdır. Sürümde daha az olabilir, ancak bu göz ardı edilebilir olacaktır.

Diğer çözümlerde belirtildiği gibi tüm sembol yollarını kapatmak uygulanabilir bir seçenektir. Ancak, başlattığınız uygulama için sembol istemiyorsanız, neden hata ayıklama yaptığınızdan emin değilim. Uygulama sembolleri olmadan, hata ayıkladığınızda kaynak kodunda nerede olduğunuzu göremezsiniz.

Daha hızlı bir hata ayıklama deneyimi arıyorsanız, WinDbg'u kullanabilirsiniz. Windows SDK ile birlikte geliyor ancak ayrı olarak da indirilebilir. Visual Studio'dan daha hızlı bir UI ise, bir GUI ile daha rahat olursanız çok daha kullanışlıdır. WinDbg hemen hemen tüm görevleri gerçekleştirmek için komutlar kullanır, ancak bazı büyük hata ayıklamalarını yapabilirsiniz ve birçok durumda Visual Studio'ya kıyasla daha hızlıdır. C++ \ CLI veya herhangi bir yönetilen uygulama (örneğin C#) hata ayıklamak istediğiniz durumda, Visual Studio ile yapışır. WinDbg'de SOS adı verilen bir uzantı var, ancak doğru kullanmak için bazı gelişmiş hata ayıklama deneyimi gerektirir.

+0

WinDbg'yi kullanarak hata ayıklayıcı performansındaki kazanç, tam IDE'yi kullanmaya devam etmenin OP'ye olan üretkenlik avantajlarından daha ağır basacaktır. WinDbg'nin yeri var - hala IDE'nin ellerini havaya uçurması ya da tamamen patlaması gibi yığılma ya da bozulma gibi yerel koddaki hataların hatalarını ayıklamak için kullanıyorum - ama VS'nin% 99'unda VS doğal C++ için gayet iyi olacak. iyi yönetilen kod. –

+0

Visual Studio'da "Hata Ayıklamayı Başlat" a basarken başlangıç ​​zamanı. Uygulamamda hata ayıklamak istiyorum, ancak yüklediği DLL'ler, örneğin Qt kitaplıkları. Belki de hata ayıklama yaparken kütüphanelerin yayın sürümünü kullanmayı denemeliyim. – fxam

+0

Lansman zamanında kesmek isterseniz, söz konusu kitaplığın sembollerini kaldırın. Bu durumda, sembol dosyaları (pdbs) muhtemelen Qt kütüphane ikili dosyalarının hemen yanındadır. Onları kaldırın ve yüklenmeyecek. İkililerin derleme türü, hata ayıklama başlatma sürenizi büyük ölçüde artırmaz. – linuxuser27

18

Visual Studio 2010'un gerçekten istediğimi yaptığını öğrendim. (: DLL örn):

  1. Git> Seçenekler> Debugging-> Semboller
  2. Click "Sadece belirtilen modülleri Araçlar- için

    diğer sembolleri yüklemeden, sizin yürütülebilir dosya için sadece sembol yüklemek için modüllerin '

  3. tıklayın 'modüllerini belirtme'
  4. yanında bulunan "
  5. temizle' Her zaman yük sembolleri exe girin
  6. yeni simgesini tıklayın çevrilebilir dosya adı (örn: my-awesome-app.exe)

Ayrıca Visual Studio 2010'un hata ayıklama işlemi sırasında Visual Studio 2008'den daha iyi performans gösterdiğini öğrendik. En azından IDE düzeni, hata ayıklama durduğunda daha hızlı geri döner.

+3

+1 Bunu yapmanın iyi bir yolu. – linuxuser27

+0

Sonunda işe yarayan bir şey. 3. adım çok önemlidir. – mathiasfk

İlgili konular