Эй все, я нахожусь в процессе отладки приложения C++ на Mac OS 10.5. Иногда, я сделаю что-то плохо и вызову segfault или в других отношениях недопустимую операцию. Это приводит к приложению, зависающему некоторое время и в конечном счете системному диалоговому окну уведомление меня катастрофического отказа. Время ожидания между "подвешиванием" и диалоговым окном является значительным; несколько минут. Если я пытаюсь вызвать выход приложение или 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
Есть приложение 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
Reactivate, установив = 1
.
В этой статье с osxdaily.com говорится, что вам просто нужно ввести:
defaults write com.apple.CrashReporter DialogType none
в терминале. Однако не знаю, устранит ли это задержку.
Я наконец понял это.
в / System / Library / CoreServices:
---------- 1 root wheel 56752 11 Aug 2009 ReportPanic
Это должно было быть связано с моими предыдущими попытками отключить надоедливый диалог отчета. Живи и учись. :]