Как получить вывод приложения OS X на консоли, или в файл?

Я пишу приложение Какао со встроенным Моно. Я хочу выполнить и видеть мой вывод отладки в Терминале. На стороне Какао я использую NSLog(), и на Моно стороне я использую Debug.Write(). Я вижу свой вывод отладки в консоли XCode, но не в Терминале. Это - то, что я попробовал:

$: open /path/build/Debug/MyProgram.app
$: open /path/build/Debug/MyProgram.app > output
$: open /path/build/Debug/MyProgram.app 2> output

в терминале, но я не делаю своего вывода на консоли или в 'ouput'.

Какова корректная команда?

PS. Моя конечная цель должна записать плагин энергии, чтобы управлять, создать, выполнить, отладить проект XCode. Можно сохранить меня эта стычка, если можно заставить этого менеджера по входу vi работать с XCode.

41
задан pkamb 9 August 2019 в 18:14
поделиться

3 ответа

Chris дал хороший обзор того, как Консоль работает, но конкретно отвечать на Ваш вопрос: Если Вы хотите видеть результаты непосредственно в Вашем Терминале, необходимо запустить созданный продукт как ребенок Терминала, что означает использовать что-то как

/path/debug/build/MyProgram.app/Contents/MacOS/MyProgram

для запуска приложения.

62
ответ дан Ronny Brendel 27 November 2019 в 00:29
поделиться

Откройте Console.app в/Applications/Utilities. Весь вывод NSLog будет распечатан в Системном журнале.

Или при выполнении его из XCode весь вывод будет распечатан в Консоли отладки.

я не нахожусь на своем Mac прямо сейчас и не вспоминаю последовательность команды или меню, Консоль отладки находится в, возможно меню Build?

11
ответ дан the Tin Man 27 November 2019 в 00:29
поделиться

Терминал на Mac OS X является просто другим приложением. Открытие окна терминала для текстового ввода-вывода не является свойственной поддержкой каждого приложения, как это находится в Windows.

, Кроме того, open /path/to/MyApp.app не выполняет MyApp.app как подпроцесс Вашей оболочки, он отправляет сообщение в инфраструктуру запуска операционной системы, прося это выполнять приложение нормальным способом, то же, как будто по нему дважды щелкнули в Средстве поиска или нажали в Прикреплении. Вот почему Вы не в состоянии просто перенаправить его вывод для наблюдения то, что приложение отправляет в stdout или stderr.

можно использовать Console.app для наблюдения вывода приложений, запущенных нормальным способом, потому что инфраструктура запуска конкретно отправляет их stdout и stderr туда. Можно также использовать эти asl стандартные программы, чтобы запросить журнал или выполнить более сложный вход если Вы, так требуйте.

14
ответ дан the Tin Man 27 November 2019 в 00:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: