我正在使用无法从控制台合理运行的程序;它是由另一个具有复杂计算和网络参数的程序启动的,并且该程序也很复杂。

要在Windows上查看输出,我可以使用AllocConsole,但Mac似乎没有这样的等效项。 。根据IvanVučica的说法,“默认情况下,控制台已“分配”。但是您不能命令操作系统打开控制台。” (链接)。

他的回答给出了一些不错的信息,但由于我没有项目,因此在反向工程环境中几乎没有用。 ,真的,真的是想要获得一个控制台而不是输出到文件或创建一些GUI的控制台,我该怎么办?如果项目选项允许启用/禁用控制台,则.app中可能有一些标志。它可以编辑吗?还有其他选择吗?

#1 楼

这实际上取决于您要运行的应用程序要登录的内容。输出应该出现在Apple系统日志中,并且可以使用Console.app查看和添加提示。关于如何在堆栈溢出时将stdout放入Console.app:


在Mountain Lion之前,由NSLog()管理的所有进程(包括
常规应用程序)都具有其stdout和stderr文件描述符
转发到系统日志。在Mountain Lion及更高版本中,对于launchd托管应用程序,stdout和
stderr无处可去。只有明确发送到系统日志的消息
会在那里结束。


我不确定是否可以看到这些日志消息,除非您要重定向stdout或以某种方式挂接到应用程序用来记录日志和ASL(现已不推荐使用)或launchd的任何功能。从那里寻找有用的日志记录。

评论


第一步,您是否知道如何使控制台首先出现?从控制台实例运行它不是一种选择。

–Lupe
16年11月19日在22:08

@Lupe Console.app?在应用程序->实用程序->控制台下。要从命令行运行OS X应用程序,您只需在捆绑软件中引用二进制文件的路径:/Applications/Xcode.app/Contents/MacOS/Xcode。

–日航
16年11月19日在22:13

我可能会误会,但是尽管我知道如何打开Console.app,但我无法从中运行目标应用程序,因为它具有极其复杂且与网络相关的启动参数。通常由启动器应用程序启动。

–Lupe
16年11月19日在22:16

您不会从Console.app运行该应用程序。 Console.app只是Apple System Logger的前端。正常启动您的应用程序,然后在Console.app中检查该应用程序中的所有日志信息。

–日航
16年11月19日在22:17

啊,抱歉我的无知。我不知道它的存在。这正是我想要的,谢谢!

–Lupe
16年11月19日在22:20