Как мне получить доморощенную версию GDB, работающую на Mac OS X Nr. 2?

Я установил 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.


person Alex    schedule 25.06.2014    source источник
comment
Та же проблема, даже работает с llvm-g++, как вы сказали.   -  person    schedule 22.08.2014