我最近一直在使用Tornado 2中的shell进行嵌入式C/C++项目,以调试我们的工具包中正在进行的操作.这种方法的唯一问题是它是一个复杂的系统,因此具有相当多的输出.每当有一些新信息到达时,龙卷风"帮助"滚动窗口,这意味着如果你发现错误,它就会在网站上消失得太快而无法看到.每次向上滚动查看时,系统都会添加更多信息,因此查看它的唯一方法是断开硬件连接.
我想知道是否有人有办法重新定向龙卷风的输出?
我希望有一种方法可以从一个小的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)
这会将所有 stdout活动重定向到您打开的文件.您可能必须使用open的文件名来使其在主机上写入(例如,使用"host:/myfile.txt"或类似的东西)