2013-05-26 6 views
6

मैं हाल ही में जीसीसी स्थापित 4.7.3 और GDB 7.6 मेरी OS X 10.7 सिस्टम पर MacPorts के माध्यम से सी ++ 11 कोड को संकलित करने में सक्षम हो। मैं ऐप्पल के स्व-निर्मित क्लैंग ++ और जीडीबी का उपयोग नहीं कर सकता क्योंकि यह मुझे मानक टेम्पलेट लाइब्रेरी कोड को सही तरीके से डीबग करने की अनुमति नहीं देता है (उदाहरण के लिए, यदि मैं एक सूची इटरेटर को अस्वीकार करता हूं, तो प्रोग्राम क्रैश हो जाता है)।जीसीसी 4.7.3 और मैक पर gdb 7.6 - अजीब स्टेपिंग समस्याओं

अब, नए जीसीसी/जीडीबी संयोजन के साथ मेरे पास कार्यों में कदम रखने के साथ कुछ अजीब समस्याएं हैं। इस कम से कम उदाहरण लें:

#include <stdio.h> 

class A { 
public: 
    virtual void testMethod() { 
     printf("test in A\n"); 
    } 
}; 

void test(A &a) { 
    printf("asdf\n"); 
    a.testMethod(); // here, stepping works with -std=c++11 
} 

int main() { 
    A a; 
    a.testMethod(); 
    test(a); 
    a.testMethod(); 
    return 0; 
} 

अगर मैं g++ -O0 -ggdb test.cpp साथ कोड संकलन, GDB बिल्कुल A::testMethod में कदम नहीं करता है। मैं A::testMethod के अंदर कोड लाइन निर्दिष्ट करके ब्रेकपॉइंट सेट कर सकता हूं, लेकिन विधि नाम (b A::testMethod()) निर्दिष्ट करके नहीं।

अधिक अजीब बात है, अगर मैं g++ -O0 -ggdb -std=c++11 test.cpp के साथ संकलित करता हूं, तो void test() से कॉल किए जाने पर जीडीबी testMethod में कदम उठाता है। मुख्य से, अभी भी काम नहीं कर रहा है। हालांकि, अब, मैं सिर्फ विधि नाम निर्दिष्ट करके ब्रेकपॉइंट सेट कर सकता हूं।

आगे, जैसे ही मैं जीडीबी में कार्यक्रम शुरू करता हूं, मुझे संबंधित प्रश्नों में वर्णित जीडीबी चेतावनियां मिलती हैं। ये चेतावनियां इस पर ध्यान दिए बिना कि मैं -std=c++11 निर्दिष्ट करता हूं या नहीं।

warning: Could not open OSO archive file "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/./gcc/libgcc_eh.a" 
warning: Could not open OSO archive file "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/../libsupc++/.libs/libsupc++convenience.a" 
warning: Could not open OSO archive file "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/../src/c++11/.libs/libc++11convenience.a" 
warning: Could not open OSO archive file "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/../src/c++98/.libs/libc++98convenience.a" 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility-atomic-c++0x.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility-c++0x.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility-debug_list-2.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility-debug_list.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility-thread-c++0x.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libstdcxx-devel/work/build/x86_64-apple-darwin11/libstdc++-v3/src/.libs/compatibility.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/_muldi3_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/addtf3_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/darwin-64_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/divtf3_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/emutls_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/enable-execute-stack_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/eqtf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/extenddftf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/extendsftf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/extendxftf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixtfdi_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixtfsi_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixtfti_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixunstfdi_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixunstfsi_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/fixunstfti_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floatditf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floatsitf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floattitf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floatunditf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floatunsitf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/floatuntitf_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/getf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/letf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/multf3_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/negtf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/subtf3_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/trunctfdf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/trunctfsf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/trunctfxf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/unordtf2_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/unwind-c_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/unwind-dw2-fde-darwin_s.o': can't open to read symbols: No such file or directory. 
warning: `/opt/local/var/macports/build/_opt_mports_dports_lang_gcc47/gcc47/work/build/x86_64-apple-darwin11/libgcc/unwind-dw2_s.o': can't open to read symbols: No such file or directory. 

मैं निम्नलिखित प्रश्नों के बारे में पता कर रहा हूँ: Debugging Problems, Weird GDB messages, GDB error message, GDB fails on Mountain Lion, फिर भी वे मेरी मदद नहीं की। -gdwarf-2 -gstrict-dwarf निर्दिष्ट करना या तो मदद नहीं करता है।

-EDIT- nm के उत्पादन में एक ही है दोनों ही मामलों में:

0000000100001068 s GCC_except_table0 
00000001000010c0 S _NXArgc 
00000001000010c8 S _NXArgv 
       U __Unwind_Resume 
0000000100000e34 T __Z4testR1A 
0000000100000eae T __ZN1A10testMethodEv 
00000001000010b0 S __ZTI1A 
0000000100000f1d S __ZTS1A 
0000000100001090 S __ZTV1A 
       U __ZTVN10__cxxabiv117__class_type_infoE 
       U ___gxx_personality_v0 
00000001000010d8 S ___progname 
0000000100000000 T __mh_execute_header 
00000001000010d0 S _environ 
       U _exit 
0000000100000e61 T _main 
       U _puts 
0000000100001000 s _pvars 
       U dyld_stub_binder 
0000000100000df8 T start 

किसी और जीसीसी 4.7 पाने में कामयाब रहे है कुछ उचित डिबगर पर ओएस एक्स शेर काम कर रहा?

+0

एक समाधान खोजने के लिए किया था? मुझे बहुत ही समान समस्याएं आ रही हैं (http://stackoverflow.com/questions/22581645/gdb-7-7-does-not-step-in-on-os-x-mavericks-with-gcc4-7-3-macports) – Denis

+0

नहीं, मुझे खेद है। मैं अंततः छोड़ दिया। – Entropia

उत्तर

0

मैंने इस तरह संकलन करने की कोशिश की .... यह ठीक काम कर रहा है .... क्या आप केवल -g विकल्प के साथ प्रयास कर सकते हैं?

उदा: जी ++ जी test.cpp -ओ परीक्षण

+0

दुर्भाग्य से, यह मदद नहीं करता है। नतीजा उतना ही है जितना कि -gdb के साथ संकलित करना। आपने जीसीसी/जीडीबी कैसे स्थापित किया? – Entropia

+0

मुझे खेद है .... मैंने सीवाईजीविन के लिए जीसीसी 4.5.3 में अपना कोड आजमाया। क्या आपने यह देखने के लिए बाइनरी फ़ाइल पर एनएम कमांड का प्रयास किया है कि प्रतीक मौजूद हैं या नहीं? –

+2

मैंने प्रश्न में 'एनएम' आउटपुट जोड़ा। मैं 'एनएम 'से बहुत परिचित नहीं हूं, हालांकि, मुझे लगता है कि प्रतीकों मौजूद हैं। कम से कम, जीडीबी टैब उन्हें पूरा करता है। साथ ही, मुझे नहीं लगता कि यह एक सामान्य जीसीसी/जीडीबी समस्या है, मैक पर एक समस्या है। उबंटू पर, सब कुछ ठीक काम करता है। – Entropia

संबंधित मुद्दे