Я установил XCode 5.1 с clang
Я установил gcc 4.8 через homebrew
Установил gdb 7.7.1 через homebrew
Используя OSX 10.9.3
Я компилирую свой исходный код С++ в eclipse kepler с Makefile, используя g++-4.8, и пытаюсь его отладить, но при достижении точки останова я не вижу никаких переменных, как в этом вопросе: GDB говорит, что нет таблицы символов, но nm показывает, что в файле есть отладочные символы
Я следовал предложениям @Tom Tromey в разделе предложений этого вопроса, чтобы использовать
set complaints 10000
в gdb, а затем загрузите файл. Это выявило множество ошибок при загрузке. Сначала я увидел много таких:
unhandled stab for dwarf OSO file...unhandled stab for dwarf OSO file...
потом много таких:
During symbol reading, location expression too complex.
During symbol reading, Member function "~clone_impl" (offset 414143) is virtual but the vtable offset is not specified.
а потом еще много таких:
During symbol reading, unexpected overlap between:
(A) section `__TEXT.__textcoal_nt' from `<snip>/sourcefilename.o' [0x228, 0x28c)
(B) section `__TEXT.__textcoal_nt' from `<snip>/differentsourcefilename.o' [0x268, 0x2cc).
Will ignore section B.
Есть много ошибок, когда один раздел игнорируется в пользу другого.
Раньше я думал, что виноват gdb, но сегодня я обнаружил, что если вместо этого использовать llvm-g++, то gdb работает так, как ожидалось. Я был вне себя от радости, обнаружив, что могу отлаживать без использования операторов cout.
Еще один похожий вопрос: Как заставить доморощенную версию GDB работать на Mac OS X?
Я хотел бы решить проблему с g++-4.8 и нуждаюсь в помощи. Большинство ответов, которые я нашел, касались устаревших версий gdb, но 7.7.1 довольно свежая и должна работать на основе того, что другие предложили на SO.