首页 > 解决方案 > vxWorks 6.9下的shell会话和调试printf

问题描述

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

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

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

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

我正在运行 vxWorks 6.9。

谢谢你的帮助

标签: cvxworks

解决方案


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

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

查看ioLib的功能ioTaskStdGet和。ioTaskStdSet


推荐阅读