3

我最近一直在研究一个嵌入式 C/C++ 项目,使用 Tornado 2 中的 shell 作为调试工具包中正在发生的事情的一种方式。这种方法的唯一问题是它是一个复杂的系统,因此有相当多的输出。每当一些新信息到达时,Tornado 都会“有帮助地”滚动窗口,这意味着如果您发现错误,它会很快从网站上消失而无法查看。每次向上滚动查看时,系统都会添加更多信息,因此查看它的唯一方法是断开硬件。

我很想知道是否有人可以重定向 Tornado 的输出?

我希望可能有一种方法可以从一个小型 python 应用程序中记录所有内容,以便我可以将过滤器应用于传入信息。我尝试连接到 Tornado 进程,但带有信息的窗口不是标准的 CEditCtrl,因此以这种方式提取文本是死路一条。

有什么想法吗?

[编辑]我应该提到我们只运行 Tornado 2.1.0 并且升级到更新的版本是我无法控制的。

[Edit2]根据 WinID,Tornado 中的相关窗口是“AfxFrameOrView42”。

4

4 回答 4

5

这是另一种可能的方式:

-> saveFd = open("myfile.txt",0x102, 0777 )
-> oldFd = ioGlobalStdGet(1)
-> ioGlobalStdSet(1, saveFd)
-> 运行我的测试()
...
-> ioGlobalStdSet(1, oldFd)

这会将所有标准输出活动重定向到您打开的文件。您可能必须使用打开的文件名才能使其写入主机(例如使用“host:/myfile.txt”或类似的东西)

于 2008-09-22T19:27:04.337 回答
3

主机外壳内置了记录功能。有 3 个环境变量可用(在 6.x 中 - 在 5.x 中不可用):

RECORD(开/关):控制外壳记录
RECORD_TYPE(输入/输出/全部):确定您将记录的内容
RECORD_FILE :保存内容的文件名。

您使用 ?shConfig 命令来配置 shell 环境变量。?shConfig 本身显示变量。这是我的设置方式:


-> ?shConfig
...
RECORD = off
RECORD_FILE = C:/test.txt
RECORD_TYPE = output
...

-> ?shConfig RECORD_TYPE all
-> ?shConfig RECORD_FILE myData.txt
-> ?shConfig RECORD on
Started recording commands in 'myData.txt'.
于 2008-09-20T00:52:06.983 回答
1

我假设您正在使用主机外壳来执行此操作。

如果您通过从 shell(如“runTest()”)启动测试来运行测试,则可以使用重定向运算符 (>) 将该函数的输出发送到主机上的文本文件。

> runTest() > mytestResults.txt

这会将 runTest 生成的任何输出保存到文件 mytestResults.txt

如果您想一直捕捉屏幕上的所有内容,我将不得不对此进行更多研究。

于 2008-09-20T00:39:47.667 回答
0

rlogin vxWorks-target | 三通重定向输出.txt

于 2008-09-20T04:32:09.823 回答