#ios #xcode #ios5 #xcode4.2
#iOS #xcode #ios5 #xcode4.2
Вопрос:
После обновления до iOS 5 и Xcode 4.2 кажется, что Xcode больше не печатает "Program ended with exit code: #"
по завершении запуска. Кто-нибудь еще заметил это и есть ли какой-нибудь способ включить его снова? У меня есть инструмент автоматического тестирования, который использует этот вывод для определения того, проходят тесты или нет, поэтому было бы очень полезно вернуть его.
ОБНОВЛЕНИЕ: я рассмотрел это более подробно, и, похоже, это более глубокая проблема. Похоже, что всякий раз, когда я запускаю приложение, оно выходит из строя с ошибкой сегментации при выходе. Иногда это происходит непосредственно перед печатью кода выхода, иногда сразу после, поэтому сообщение о коде выхода отображается непоследовательно. В консоли устройства появляется сообщение об ошибке seg, хотя в выводе отладки Xcode ничего нет.
Ответ №1:
Я тоже только что заметил это. Кажется, что в Xcode 4.1 ( tty /dev/ttys000
) gdb
запускается следующим образом:
This GDB was configured as "--host=i386-apple-darwin --target=arm-apple-darwin".tty /dev/ttys000
Но в Xcode 4.2 — Нет tty /dev/ttys000
:
This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all
Чтобы исправить это, вы можете выполнить следующие действия из командной строки (Terminal.app / iTerm / etc):
echo 'tty /dev/ttys000' >> ~/.gdbinit
# Or, put it into the global gdb config:
# echo 'tty /dev/ttys000' >> /etc/gdb.conf
Затем перезапустите Xcode, и ваш код выхода будет возвращен!
Кажется, что оболочка gdb Xcode 4.2 изменилась с 4.1
[ 13:29 Jonathan@MacBookPro / ]$ ls -l /Developer/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB
-rwxrwxr-x 1 root admin 351936 Sep 20 13:23 /Developer/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB
-rwxrwxr-x 1 root admin 353776 Oct 8 14:21 /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB
[ 13:33 Jonathan@MacBookPro / ]$ ls -l /Developer/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB
-rwxrwxr-x 1 root admin 1976144 Sep 20 13:23 /Developer/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB
-rwxrwxr-x 1 root admin 1948240 Oct 8 14:21 /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB
Комментарии:
1. К сожалению, я должен отозвать это утверждение. Сначала это, казалось, работало, но теперь это просто кажется непоследовательным. Иногда код выхода появляется, иногда нет, без какого-либо шаблона, который я могу найти. Есть еще идеи?
2. @Jeff Попробуйте поместить его в глобальную конфигурацию gdb следующим образом
echo 'tty /dev/ttys000' >> /etc/gdb.conf
3. К сожалению, нет, он все еще непоследователен. Это только последняя строка; Я получаю все остальные результаты, которые я ожидаю.
4. @Jeff
/dev/ttys000
может быть неправильнымtty
, запуститеls -l /dev/ttys*
с терминала и посмотрите, какой из них принадлежит вам. Это может быть/dev/ttys001
или/dev/ttys002
.5. Я рассмотрел это более подробно, и моя проблема, похоже, не связана с tty. См. Отредактированный вопрос для получения более подробной информации.