我正在编写一个嵌入Mono的Cocoa应用程序.我想运行并在终端中查看我的调试输出.在我正在使用的Cocoa方面NSLog()
,在我正在使用的Mono方面Debug.Write()
.我可以在xcode的控制台中看到我的调试输出,但不能在终端中看到.这是我试过的:
$: open /path/build/Debug/MyProgram.app $: open /path/build/Debug/MyProgram.app > output $: open /path/build/Debug/MyProgram.app 2> output
在终端,但我没有在控制台或"输出"输出.
什么是正确的命令?
PS.我的最终目标是编写一个vim插件来管理,构建,运行,调试xcode项目.如果你能让这个vi输入管理器使用xcode,你可以省去这个麻烦.
Chris很好地概述了控制台的工作原理,但是要专门回答您的问题:如果您想直接在终端中查看结果,则需要将构建的产品作为终端的子项运行,这意味着使用类似的东西
/path/debug/build/MyProgram.app/Contents/MacOS/MyProgram
启动应用程序.
Mac OS X上的终端只是另一个应用程序.打开文本I/O的终端窗口并不是每个应用程序的固有功能,因为它在Windows上.
此外,open /path/to/MyApp.app
不执行MyApp.app作为shell的子进程,它会向操作系统的启动基础结构发送一条消息,要求它以正常方式执行应用程序,就像在Finder中双击它或单击它一样在码头.这就是为什么你不能只重定向其输出以查看你的应用发送到的内容stdout
或stderr
.
您可以使用Console.app看到以正常方式启动的应用程序的输出,因为推出的基础设施特别是他们发送stdout
和stderr
那里.您还可以使用asl
例程查询日志,或者根据需要执行更复杂的日志记录.
在/ Applications/Utilities中打开Console.app.所有NSLog输出都将打印在系统日志中.
或者,如果从Xcode中运行它,则所有输出都将在Debug控制台中打印.
我现在不在我的Mac上,也不记得调试控制台所在的命令序列或菜单,可能是Build菜单?