2016-04-07 48 views
2

Ubuntu 14.04 üzerinde QtCreator 3.6.1'i ana derleyicim olarak gcc ile kullanıyorum.QtCreator, derleme yerine hata ayıklama yaparken "normal" kodu nasıl gösterir?

Qt projem hata ayıklama modunda oluşturuluyor. Ancak, F5'e bastığımda, mola noktaları belirleyerek kodun içine girmeye çalışmak için, kodum çöküyor (kod buggy olduğundan), ancak kesme noktasında durmak yerine, bana montaj çıktısını gösteriyor!

İşte bir ekran görüntüsü. Kod, sarı oku gördüğünüz yerde çökmüş gibi görünüyor, ama sadece kaynak kodda nerede olduğunu bilmiyorum! Burada gördüğünüz gibi

enter image description here

Aslında, bir cout deyimi benim kesme noktası belirledik.

enter image description here

bile cout açıklamada çalıştırdığı değil. Ana yürütmeden önce kod çöküyor gibi görünüyor. Bunun QtCReator problemi mi yoksa başka bir şey mi olduğunu bilmiyorum. -O0 ve -g seçeneği QMAKE_CXXFLAGS seçeneğine QMAKE_CXXFLAGS seçeneğine ekledim, bu hata ayıklama sembollerinin eklendiğinden emin olun, yine de bu sorunu yaşıyorum.

DÜZENLEME: My yığın izleme Ayrıca, bu

enter image description here

benziyor ben bu yardımcı olur emin değilim, ama programın adının önünde LD_DEBUG ile terminale aracılığıyla programı çalıştırdığınızda, ben büyük miktarda çıktı elde edin.

son üç satır bunun için

. 
. 
. 
     7934: symbol=_ZN11QMetaObject8addGuardEPP7QObject; lookup in file=/usr/lib/x86_64-linux-gnu/libQtGui.so.4 [0] 
     7934: symbol=_ZN11QMetaObject8addGuardEPP7QObject; lookup in file=/usr/lib/x86_64-linux-gnu/libQtCore.so.4 [0] 
     7934: binding file /usr/lib/x86_64-linux-gnu/libQtGui.so.4 [0] to /usr/lib/x86_64-linux-gnu/libQtCore.so.4 [0]: normal symbol `_ZN11QMetaObject8addGuardEPP7QObject' 
[1] 7934 segmentation fault (core dumped) LD_DEBUG=all ./CGALQT_Fix_MainWindow 
+2

Kodunuzda kilitlendiğinden emin misiniz? Hata ayıklama bilgilerinin olmadığı başka bir kitaplıkta (örneğin, libc) çökerse, kodunuzun tam hata ayıklama bilgisi olup olmadığına bakılmaksızın, hala bu çerçeveler için derleme gösterecektir. Tam backtrace neye benziyor? –

+0

@FrankOsterfeld Görüyorum. QtCreator'da tam backtrace'i nasıl alacağımı söyleyebilir misin? Bunun ne olduğundan emin değilim. – smilingbuddha

+0

@FrankOsterfeld * Kodumda * yazılıyor mu bilmiyorum. Kodun ilk satırı olarak koyduğum 'cout' ifadesi bile – smilingbuddha

cevap

0

, uygulamanız hata ayıklama kütüphaneleri bağlamak için vardır bulunmaktadır. Uygulamanızın nerede kilitlendiğini araştırmak için genellikle buna ihtiyacınız olmaz, çünkü tüm yöntemlerinizi işlev yığında görebilirsiniz.