2009-04-09 10 views

cevap

0

Anladığım kadarıyla, Debug Mode'da hata ayıklayıcı tarafından kullanılan tüm sembol bilgileri programla birlikte saklanır, böylece bir geliştirici yayınlamayı iptal etmeden önce uygulamayı ayıklamak isterse Yani, herhangi bir hata ayıklayıcıya ekleyerek.

Hata ayıklama klasöründeki .pdb dosyalarını fark etmiş olabilirsiniz. Ayrıca, yürütülebilir dosyanın boyutu oldukça büyüktür. Ancak Serbest bırakma modunda, son kullanıcının uygulamayı kullanacağı varsayılarak hata ayıklayıcı sembol bilgisi ihmal edilir; böylece uygulama simgeleri ile birlikte sunulmaması gerekir.

Sembolleri, hangi yerel değişkenlerin, hangi işlevlerin, hangi noktaların ayarlandığını ve her türlü bilgiyi anlamak için hata ayıklayıcısına sağlanan bilgiler olarak düşünebilirsiniz, böylece kodun şu anda hangi bölümünün yürütülmekte olduğunu tam olarak söyleyebilmenizi sağlar. .

+0

Bu yanlış - hata ayıklama sembolleri hem hata ayıklama hem de yayımlamada kullanılabilir hale getirilebilir modu. – morechilli

+0

Bkz. Http://stackoverflow.com/questions/218226/visual-c-2008-release-build-contains-debug-information – morechilli

+0

Teşekkürler. Proje ayarlarında mevcut olan varsayılan konfigürasyonları düşünmekten daha fazlasını yapıyordum. –

6

Kısa cevap ayıklama için kullanılan tüm bilgilere sahip olacak, aynı zamanda hız veya boyutu için optimize edilecek 'Release' modunda inşa ettiği kod ve kaldırılamaz

0

Evet doğru, hatta sürüm modunda debug [:)]. Bunu yapmak için ayrıntılı süreçler vardır. Ancak, yayın oluşturma hızı ve performansı için optimize edilmiştir. Ayrıca Microsoft Son kullanıcı lisans sözleşmesi, hata ayıklama dosyalarınızı istemci sistemde dağıtamayacağınızı belirtir.

http://www.codeproject.com/KB/debug/releasemode.aspx

5

farklar: faydalı CIL kodu arasındaki

  • ayıklama uçlar NOPs (İşlemsiz işlemci kitabı) ayıklayıcı, ekin
  • ayıklama izin vermez çeşitli optimizasyonlar izin vermek için:
    • Inlining (çağrı ek yükünü azaltmak için bir çağrının yerine bir kodun yerleştirilmesi)
    • Döngüler (bir döngü kod değiştirme - örneğin bir şekilde - tekrarlanan kod çevrim yükü (döngüsel değişken bakım) ortadan kaldırmak için)

ve diğerleri. Serbest bırakma daha hızlıdır, ancak gerçek bir hata ayıklama desteği sunmaz. Hata ayıklama için ... hata ayıklama modu :)

İlgili konular