Подтвердить что ты не робот

Отладчик XCode отстой; альтернативы?

Я программировал на Mac, так как был маленьким ребенком, используя THINK C. Мне никогда не приходилось использовать отладчик так же плохо, как тот, который поставляется с XCode.

  • Он не реагирует и борется дальше и становится неустойчивым при просмотре большего количества переменных.
  • Когда он падает, я теряю историю отмены для своих источников, потому что он интегрирован с редактором.
  • Это не способствует интеграции, поскольку, поскольку исходный просмотрщик непригоден для степпинга: попытка выбрать строку, щелкнув по левому краю, делает кнопку из ниоткуда, что заставляет программу продолжать эту линию, в окно редактора, которое не должно относиться к отладке в первую очередь. Ужасный пользовательский интерфейс и ужасная реализация.
  • Синтаксис "обобщенного" синтаксиса, который не может отправить объект в окно "Выражения". Окно
  • he Expressions не знает о каком-либо контексте, когда-либо.
  • Невозможно выбрать конкретный поток для отладки, насколько я могу судить, и не переходить к потоку с именем abort().

Отладчик ядра для Mac OS 9 был лучше этого. Пора отказаться.

Какие автономные интерфейсы для GDB работают на OS X? Я нашел http://ddd.darwinports.com/, но трудно найти похвалу или анекдоты для него или другие альтернативы.

Поддержка контейнеров STL - большой плюс для меня. Мне было все равно, о Objective-C или Apple-ничего.

4b9b3361

Ответ 1

Я склонен использовать valgrind для ошибок, связанных с памятью; gdb (в теме), когда мне нужна обратная линия; и протоколирование + couts для всех остальных (если это не сбой, и там нет повреждения памяти, ошибка кажется проще).

Не понимаю, как отлаживать многопоточный код.

Ответ 2

Вы пробовали monodevelop? Он может создавать и отлаживать код C, а не показывать, как он обрабатывает obj-c.

Если вы можете работать с DDD, я использовал это с хорошими результатами на многих странных платформах. DDD требует X11.

Ответ 3

У меня был тот же опыт с XCode, и я перешел на Netbeans и Eclipse (все еще не уверен, какой из них я предпочитаю друг друга, у обоих есть сильные и слабые стороны).

Это может показаться странным выбором, но оба они предлагают приятную поддержку на С++, разумную интеграцию отладчика и хорошие варианты управления проектами. Мне также нравятся инструменты рефакторинга и интеграция с версией управления версиями. Имейте в виду, что они не такие быстрые и чистые, как Visual Studio 6.

Как и многие другие, мне не нравится Objective-C, и я очень устал от необходимости изучать разные среды/рамки для каждой платформы, которую я пишу (я иногда использую Linux и OSX, Windows иногда). Оба Netbeans и Eclipse - большой плюс для переносимости. Они также поддерживают другие языки, которые я иногда использую для небольших проектов (Python приходит на ум).

Ответ 4

Я добавляю к тому, что анонс сказал, что я недавно нашел этот трюк на 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

Ответ 5

Я только что обнаружил cgdb, интерфейс для прокрутки для gdb. Может быть, вы захотите попробовать, хотя это кажется немного устаревшим. (Jan'10)