c - 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。
谢谢你的帮助
解决方案
我在使用 VxWorks 6.7 时遇到过类似的问题(从我的同事那里我知道 6.9 的行为方式相同)。
我的解决方案(虽然不是很好)是在我的程序中创建一个函数,它将所有任务的标准输出和标准错误重定向到当前(调用)任务(例如当前的远程登录会话)的标准输出和标准错误。
推荐阅读
- validation - 当flutter中的验证为真时如何自动滚动页面
- mysql - 如何使用 sql 获取特定条件下的结果?
- javascript - angular-slickgrid,在选择编辑器更改事件时触发单元格编辑
- sql - 如果数据存在于另一个表中,则更新表
- mysql - 将 MS Access 查询转换为 MariaDB
- javascript - 从对象数组中选择,通过匹配其中的一个属性,该属性也是一个数组
- python - 如何从odoo外部向odoo控制器发出发布请求?
- python - 在没有 Docker 的 Azure 函数中包含 Selenium/Firefox
- angular - 如何在不触发的情况下将值设置为文本区域
- json - 查询仅适用于小数据,而对于更多数据则不起作用