如何将 Trace32 终端视图打印到文件?

How to print Trace32 terminal view to a file?

我有一个初始化终端并在 Trace32 终端中打印信息的脚本,但我无法编辑该文件。我正在使用 term.write 命令将终端 window 中的内容记录到文件中。但它确实记录了执行此命令之前写入的信息。

所以,我尝试了 Printer.filewinprint.term.view 命令。现在我得到这个错误。

terminal window with this configuration already open

如何将终端的所有内容(包括已经写入和将要写入终端的内容)记录到文件中?

如果您想在使用调试器 交互 时从 TRACE32 中的 window 获取内容,请单击上下文菜单,然后选择 "To Clipboard all"。然后打开文本编辑器并将剪贴板粘贴到一个空文档 (Ctrl+V)。


如果你想通过PRACTICE脚本获取TRACE32中window的内容,使用命令<strong>PRinTer.FILE</strong> <em><FilenName></em> <strong>ASCIIE</strong>(如你做了)然后命令 <strong>WinPRT</strong> <em><WindowName></em> <strong>/ALL</strong>.

预命令 WinPRINT 在打印机上创建一个新的 window,它不会提供您想要的终端 windows。但是,命令 WinPRT 实际上将打开的 window 的内容发送到打印机(并且打印机可以重定向到文件)。

WinPRT 的棘手之处在于知道您的 window 的名称。命令 WinPOS 允许您设置下次打开的名称 window。所以我建议在打开终端 window 的脚本中使用 WinPOS。但由于您无法更改该脚本,请使用命令 WinPAGE.List 获取所有打开的 windows 的名称。

例如在下面的 WinPAGE.List 中,您可以看到用 TERM.VIEW 打开的 window 具有 window-name "W000"。

因此,我可以使用

获取终端 window 的内容
PRinTer.FILE "C:\temp\mywindow.txt ASCIIE
WinPRT W000 /ALL

请注意,window 名称区分大小写。

window 名称以大写 'W' 开头,后跟三个十进制数字,由 TRACE32 按它们出现的顺序设置。因此,如果您想确保您的终端 window 始终获得相同的名称,请确保在使用您的脚本打开终端 window 之前没有打开 window。你可以用WinPAGE.RESet.

关闭所有windows

所以你得到:

WinPAGE.RESet
DO "C:\T32\user\my_script_to_open_the_terminal.cmm"
PRinTer.FILE "C:\temp\mywindow.txt ASCIIE
WinPRT W000 /ALL

如果您的脚本只打开一个终端 window 而没有其他 window,我建议这样做:

WinPOS ,,,,,,myTerminal    
DO "C:\T32\user\my_script_to_open_the_terminal.cmm"
PRinTer.FILE "C:\temp\mywindow.txt ASCIIE
WinPRT myTerminal /ALL

我来晚了,但找到了答案。

&LOGFILENAME=OS.PPF()+".log" ; so, filename here is "<this_current_path_filename_with_extension>.log"
PRINT " Printing to log file: &(LOGFILENAME)"
PRinTer.FILE &LOGFILENAME ASCIIE

; select and open display the AREA you want to print to file; here it is default T32 log area A000
AREA.Select A000
AREA.View A000
WinPrint.AREA.View
;AREA.CLEAR ;if you want to clear the view for next set of prints

或者,在real-time中,write-to-file是

OPEN #1 OS.PPF()+".log" /CREATE  ; so, filename here is "<this_current_path_filename_with_extension>.log"
;...
WRITE #1 "Hello World - it is " DATE.TIME()
;how many ever WRITE's you want in the code 
;...
;...
WRITE #1 " BYE"
;...
CLOSE #1