Xcode 4.2 не выводит код выхода?

#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. См. Отредактированный вопрос для получения более подробной информации.