为什么在通过源脚本运行时没有输出反汇编命令

时间:2016-07-12 13:49:54

标签: tcl

我喜欢在shell中包装TCL过程,以便我可以直接在BASH运行一些TCL例程。这是我的TCL脚本文件tools.tcl:

  1 proc disassemble {file_name} {
  2     set f [open $file_name r]
  3     set data [read -nonewline $f]
  4     close $f
  5     tcl::unsupported::disassemble script $data
  6 }
  7 
  8 if {$::argc == 0} {
  9     return
 10 }
 11 
 12 [lindex $::argv 0] [lrange $::argv 1 end]

我喜欢这样运行:tclsh tools.tcl disassemble 1.tcl

但我没有看到任何输出。我添加了一个调试转储,将$ data放在第5行之前,它正确地转储1.tcl。

在tcl :: unsupported :: disassemble中是否有重定向?

1 个答案:

答案 0 :(得分:2)

尝试

puts [tcl::unsupported::disassemble script $data]

disassemble命令将其输出作为文本数据返回。在控制台中,您可以直接看到它,但是如果在正在运行的脚本中调用的过程中调用它,则无法看到它。