Точки останова Xcode появляются только при установке во время отладки - PullRequest
4 голосов
/ 08 апреля 2009

Я портирую C ++ SDK с Windows на Mac OSX 10.5. У меня есть проблема в XCode, где мои точки останова в определенных файлах будут достигнуты, только если я установлю их во время отладки. Если я остановлю отладку, а затем перезапущу, точки останова больше не будут попадать. Если я добавлю их, пока не отлаживаю, они не получат удар. Это только в определенных файлах, и мои контрольные точки всегда темно-синие. то есть я не могу определить разницу между точкой останова, которая получит удар, и точкой останова, которая не будет.

В частности, мой SDK состоит из различных динамических библиотек. Они созданы с использованием Perforce jam, который вызывает различные исполняемые файлы компиляции и компоновки в зависимости от моей ОС и версии компилятора (например, cl.exe и link.exe в Visual Studio). У меня есть простое (модульное тестирование) приложение командной строки, которое связывается с этими динамическими библиотеками и вызывает код в них. Это приложение для Windows представляет собой проект Visual Studio, в котором я устанавливаю точки останова в коде библиотеки и ожидаю, что они будут достигнуты.

Я создал то же самое служебное приложение командной строки C ++ в Xcode 3.1.2, которое ссылается на dylibs sdk и вызывает в них код. Некоторые из точек останова работают нормально. Я могу установить точки останова в коде, который вызывается из проблемного кода, и перейти к проблемному коду, который я затем смогу пройти нормально. Проблемный код скомпилирован в тот же самый dylib, что и код, который работает нормально. Это также долго и достаточно сложно, чтобы не быть кандидатом на встраивание.

Я пробовал следующее:

  • Выключить символы загрузки лениво.
  • Компилировать как с gcc 4.0, так и с gcc 4.2.
  • Выполнить полную очистку и отключение.
  • Удалить пользовательские файлы пакета xcodeproj.
  • Переименуйте файлы, чтобы они не конфликтовали с системными файлами.
  • Очистить все из окна точек останова.
  • Создайте новый проект Xcode.

Мое приложение скомпилировано в режиме отладки в формате DWARF, а мои библиотеки собраны с флагом -g (вместе с -v, -arch i386 и -fvisibility-inlines-hidden).

Помощь будет высоко ценится. Спасибо.

Обновление : извините, что не обновил это, мой проект порта Mac был отложен. Я никогда не решал это, но обнаружил, что это на самом деле происходит только в телах конструктора. Я вернусь к этому, как и когда я снова столкнусь с проблемой.

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Не совсем ответ: вы должны сделать отчет об ошибке в официальном багтрекере Apple. Высоки шансы, что вы рано или поздно получите ответ - или, возможно, это действительно ошибка.

1 голос
/ 08 апреля 2009
...