我最近一直在研究一个嵌入式 C/C++ 项目,使用 Tornado 2 中的 shell 作为调试工具包中发生的事情的一种方式。这种方法的唯一问题是它是一个复杂的系统,因此有相当多的输出。每次有新信息到达时,Tornado 都会“有帮助地”滚动窗口,这意味着如果您发现错误,它会很快消失在站点之外而无法看到。每次向上滚动查看时,系统都会添加更多信息,因此查看它的唯一方法是断开硬件连接。
我很想知道是否有人可以重定向 Tornado 的输出?
我希望可能有一种方法可以从一个小型 python 应用程序中记录所有内容,以便我可以对传入的信息应用过滤器。我已经尝试连接到 Tornado 进程,但是带有信息的窗口不是标准的 CEditCtrl,因此以这种方式提取文本是一个死胡同。
任何人的想法?
[编辑] 我应该提到我们只运行 Tornado 2.1.0 并且升级到更新的版本超出了我的控制。
[Edit2] 根据 WinID,Tornado 中的相关窗口是“AfxFrameOrView42”。
最佳答案
这是另一种潜在的方式:
-> saveFd = open("myfile.txt",0x102, 0777)
-> oldFd = ioGlobalStdGet(1)
-> ioGlobalStdSet(1, saveFd)
-> runmytest()
...
-> ioGlobalStdSet(1, oldFd)
这会将 所有 标准输出事件重定向到您打开的文件。
您可能需要修改打开的文件名以使其写入主机(例如,使用“host:/myfile.txt”或类似的内容)
关于shell - 如何重定向 Tornado/VXWorks shell 输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/106453/