Отладка и уничтожение приложений в Mac OS X? - PullRequest
5 голосов
/ 11 февраля 2010

Привет всем, я нахожусь в процессе отладки приложения C ++ на Mac OS 10.5. Иногда я делаю что-то плохое и вызываю ошибку или другую незаконную операцию. Это приводит к зависанию приложения на некоторое время и в конечном итоге к системному диалогу, уведомляющему меня о сбое. Время ожидания между «зависанием» и диалогом является значительным; несколько минут. Если я пытаюсь принудительно закрыть приложение или kill -9, то из командной строки ничего не происходит. Если я запускаю приложение из отладчика (gdb), при сбое я возвращаюсь к приглашению gdb и могу аккуратно выйти из процесса. Это не идеально, поскольку GDB медленно загружается.

В любом случае, вы, ребята, можете что-нибудь порекомендовать? Есть ли способ отключить механизм отчетов о сбоях в OS X?

Спасибо.

Обновление 1 : Вот зомби, которые остались от выполнения XCode. Очевидно, xcode не может их правильно остановить.

  1 eightieight@eightieights-MacBook-Pro:~$ ps auxw|grep -i Reader
  2 eightieight   28639   0.0  0.0   599828    504 s004  R+    2:54pm   0:00.00 grep -i reader
  3 eightieight   28288   0.0  1.1  1049324  45032   ??  UEs   2:46pm   0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
  4 eightieight   28271   0.0  1.1  1049324  45036   ??  UEs   2:45pm   0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
  5 eightieight   28146   0.0  1.1  1049324  44996   ??  UEs   2:39pm   0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
  6 eightieight   27421   0.0  1.1  1049328  45024   ??  UEs   2:29pm   0:00.88 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
  7 eightieight   27398   0.0  1.1  1049324  45044   ??  UEs   2:28pm   0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader

Ответы [ 3 ]

1 голос
/ 25 февраля 2010

В этой статье от osxdaily.com говорится, что вам просто нужно набрать:

defaults write com.apple.CrashReporter DialogType none

в терминале. Не знаю, исправит ли это задержку.

1 голос
/ 30 марта 2010

Я наконец понял это.

in / Система / Библиотека / CoreServices:

----------    1 root  wheel    56752 11 Aug  2009 ReportPanic

Это, должно быть, было из моих предыдущих попыток отключить раздражающий диалог отчета. Живи и учись. :]

1 голос
/ 11 февраля 2010

Существует приложение CrashReporterPrefs , которое поставляется с XCode (поиск его с помощью Spotlight; должно быть в /Developer/Applications/Utilities). Это можно установить в режим сервера, чтобы отключить диалог приложения «Неожиданно завершено».

Вот еще одно предложение :

sudo chmod 000 /System/Library/CoreServices/Problem\ Reporter.app

Чтобы снова включить, выполните следующие действия:

sudo chmod 755 /System/Library/CoreServices/Problem\ Reporter.app

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

sudo sysctl -w kern.coredump=0

Реактивировать, установив =1.

...