Я программировал на Mac, так как я был маленьким ребенком, использующим, ДУМАЮТ C. Я никогда не должен был использовать отладчик настолько же плохо как тот, который идет с XCode.
Отладчик ядра для Mac OS 9 был лучше, чем это. Пора сдаться.
Какие автономные фронтенды для GDB работают над OS X? Я нашел http://ddd.darwinports.com/, но трудно найти похвалу или истории для него или другие альтернативы.
Поддержка контейнеров STL является большим плюс для меня. Я не мог заботиться меньше о Objective C или Apple - ничто.
Вы пытались монодеполай? Он может построить и отлаживать C-код, а не показывать, как он обрабатывает OBJ-C.
Если вы можете получить DDD, я использовал это с хорошими результатами на многих странных платформах. DDD требует X11.
У меня был тот же опыт с Xcode, и завершил переход на NetBeans и Eclipse (все еще не уверен, какой я предпочитаю над другим, оба и слабые точки).
Это может показаться нечетным выбором, но оба они предлагают хорошую поддержку C ++, разумную интеграцию отладчиков и хорошие варианты управления проектами. Мне нравятся инструменты рефакторинга и интеграция исходной версии. Ум, что они не так, как Snappy и чистым, как Visual Studio 6.
Как многие другие здесь, я не люблю объективную C, и я в значительной степени понравился с необходимостью изучения различной среды / рамки для каждой платформы, которую я пишу Для (я использую Linux и OSX ежедневно, Windows по случаю). И NetBeans и Eclipse являются большим плюсом для переносимости. Они также поддерживают другие языки, которые я иногда использую для меньших проектов (приходит на ум Python).
Я склонен использовать Valgrind для ошибок, связанных с памятью; GDB (в темале), когда я хочу обратныйтрас; и лесозаготовки + Couts для всех остальных (если он не сбивается, и нет повреждения памяти, ошибка кажется проще).
Аналогично, понятия не имею, как отладки многопоточного кода.
Я добавляю к анонсу, что недавно обнаружил этот трюк на SO, который упрощает отладку STL:
$ cd ~
$ svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
$ cat ~/.gdbinit
python
import sys
sys.path.insert(0, '/home/USERNAME/python/')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end