Я пытаюсь отлаживать программу C++ в Eclipse с помощью gdb. Я думаю, что это отлично работает в моей main()
функции, но в другом месте он дает мне предупреждение, когда я пытаюсь посмотреть на значение переменной:Как получить домашнюю версию GDB, работающую на Mac OS X?
Failed to execute MI command:
-data-evaluate-expression variable
Error message from debugger back end:
Could not find the frame base for "Class::method()".`
После рыщут в Интернете, я с трудом понимая, что это ошибка или выяснить, как устранить проблему. Есть несколько других подобных вопросов (here и here), плавающих вокруг переполнения стека.
Поскольку инструменты командной строки Xcode от Apple устаревают (см. gcc и gdb вопросов) Мне нужно было использовать собственные версии для доморощенного. Я не знаю, есть ли что-то в настройке для этих инструментов, которые я мог пропустить.
Я могу отлаживать из командной строки с помощью gdb, и я получаю ту же ошибку: "Could not find the frame base for "Class::method()"
, поэтому я уверен, что это не проблема с Eclipse.
Что-нибудь выскочит к кому-нибудь, что может вызвать эту проблему?
- Mac OS X 10.8.5 (Mountain Lion)
- Затмение 4.2.1 (Juno)
- GCC 4.8.2 (доморощенной) (с
-O0
и-g3
) - GdB 7.6.2 (доморощенной и codesigned)
Update:
Я также видя строку:
BFD: /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork(i386:x86-64): unknown load command 0x20
Далее следуют несколько предупреждений:
warning: Could not open OSO archive file "/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/../libsupc++/.libs/libsupc++convenience.a"
warning: Could not open OSO archive file "/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/../src/c++11/.libs/libc++11convenience.a"
warning: Could not open OSO archive file "/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/../src/c++98/.libs/libc++98convenience.a"
warning: `/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/.libs/compatibility-atomic-c++0x.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/.libs/compatibility-c++0x.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/.libs/compatibility-chrono.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc48-KqoQ/gcc-4.8.2/build/x86_64-apple-darwin12.5.0/libstdc++-v3/src/.libs/compatibility-debug_list-2.o': can't open to read symbols: No such file or directory.
...
, который продолжается в течение нескольких линий. Google ищет команду «gdb bfd unknown load», которая показывает множество сайтов без какого-либо решения, но все они, похоже, указывают на то, что может быть конфликт между не-яблочными версиями gdb и Mac OS X 10.8+.
Любое понимание поможет тонне!
Я только что открыл нить о чем-то подобном http://stackoverflow.com/questions/24414707. У меня был успех с использованием XCode 5.1 с llvm-gcc в качестве компилятора и gcc 7.7.1 в качестве отладчика, но мне все еще интересно узнать, как это решить. – Alex
Такая же проблема здесь. Заранее благодарим всех, кто может это решить. – Wizmann
Я не эксперт, но вы можете попробовать скомпилировать флаг -gdwarf-3 и посмотреть, работает ли он. – qutab