在Mac OS X上调试和查杀应用程序?

时间:2010-02-11 17:20:53

标签: c++ debugging macos crash

嘿所有,我正在调试mac os 10.5上的C ++应用程序。偶尔,我会做一些不好的事情并导致段错或非法操作。这导致应用程序挂了一段时间,最终系统对话框通知我崩溃。 “挂起”和对话之间的等待时间很长;几分钟。如果我尝试强制退出应用程序或从命令行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 个答案:

答案 0 :(得分:1)

XCode附带CrashReporterPrefs app(使用Spotlight搜索它;应该在/Developer/Applications/Utilities中)。这可以设置为服务器模式以禁用应用程序“意外退出”对话框。

这是another suggestion

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重新启用。

答案 1 :(得分:1)

来自osxdaily.com的

This article说你只需输入:

defaults write com.apple.CrashReporter DialogType none

在终端。不知道这是否会解决延迟问题。

答案 2 :(得分:1)

我终于明白了。

/ System / Library / CoreServices:

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

这一定是我之前尝试禁用恼人的报告对话框的。活到老,学到老。 :