Shell会话和调试printf在vxWorks 6.9下

时间:2018-05-14 12:00:10

标签: c vxworks

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

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

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

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

我正在运行vxWorks 6.9。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我与VxWorks 6.7有类似的问题(从我的同事我知道6.9的行为方式相同)。

我的解决方案(虽然不太好)是在我的程序中创建一个函数,它将所有任务的stdout和stderr重定向到当前(调用)任务的stdout和stderr(例如当前的telnet会话)。 / p>

查看ioTaskStdGetioTaskStdSetioLib函数。

答案 1 :(得分:0)

如果要将所有任务的输出重定向到当前登录Shell,请参见https://stackoverflow.com/a/52749183/10481046