Shell vxWorks 6.9 下的会话和调试 printf

Shell sessions and debug printf under vxWorks 6.9

我正在 运行ning 一个在启动脚本中启动的 vxWorks C 应用程序。一切 运行 都很好,除了在启动时脚本启动我的软件后,每当我远程连接到嵌入式 telnet 服务器时,我都看不到我的软件的 printf 调试跟踪。

当我在提示符下手动 运行 软件时,我可以在我的 telnet 会话中看到调试跟踪。

我认为这与SHELL_MAX_SESSIONS内核选项设置为-1(无限制)有关,所以我猜测默认为串行线的初始会话不显示新 telnet 会话上的调试跟踪。我试图将 SHELL_MAX_SESSIONS 选项设置为 1,但我丢失了 telnet 会话。 2 个会话给了我同样的问题。

我想知道是否有办法在每个打开的会话上集中或重定向所有 stdio 输出?

我运行正在安装 vxWorks 6.9。

感谢您的帮助

我在 VxWorks 6.7 上遇到过类似的问题(从我的同事那里我知道 6.9 的行为方式相同)。

我的解决方案(虽然不太好)是在我的程序中创建一个函数,它将所有任务的标准输出和标准错误重定向到当前(调用)任务(例如当前的 telnet 会话)的标准输出和标准错误.

查看函数ioTaskStdGet and ioTaskStdSet of the ioLib

如果您想将所有任务的输出重定向到当前登录 shell,请参阅