Программа командной строки Mono умирает с сообщением о ловушке трассировки и ничем другим

У меня есть приложение Mono из командной строки, работающее на Mac (OSX Lion), и оно загадочным образом умирает со следующим сообщением:

[1]    53342 trace trap  "/Library/Frameworks/Mono.framework/Versions/2.10.9/bin/mono" --debug  

read: -p: no coprocess

Это запускает приложение от MonoDevelop.

Кто-нибудь знает, что происходит и как я могу это исправить? (или как я могу попытаться выяснить, что это такое)


person Maurício Linhares    schedule 11.07.2012    source источник


Ответы (2)


Ни как исправить, ни как разобраться что это такое, а изолировать проблему:

  • Запустите его вне MonoDevelop. Если это работает, сообщите об ошибке в MonoDevelop.
  • Запустите его вне MonoDevelop с последней версией Mono (2.11.3). Если это все еще не удается, сообщите об ошибке в Mono.
  • (Если у вас есть доступ к Linux, попробуйте и там, потому что это может быть ошибка в Mono, которая влияет только на платформу Mac.)

Ошибки регистрируются на странице http://bugzilla.xamarin.com/.

person knocte    schedule 11.07.2012
comment
В конце концов, это была не ошибка Mono, а просто какой-то умный код, который не работает на Mac так же, как на Windows. - person Maurício Linhares; 12.07.2012

В конце концов проблема заключалась в том, что в приложении был такой код:

#if DEBUG
    Debugger.Break();
#endif

Приложение компилировалось в Debug, и я запускал его следующим образом:

mono Cli.exe

И когда интерпретатор нашел этот фрагмент кода, в момент отправки сигнала прерывания отладчик был недоступен. В то время как в Windows открывается диалоговое окно с вопросом, хотите ли вы отладить приложение, в MacOS приложение просто совершает самоубийство. Исправление состояло в том, чтобы не выполнять этот код при работе на Mac (или при запуске приложения внутри GDB).

person Maurício Linhares    schedule 12.07.2012