smalltalk inspect-输出到成绩单或文件

smalltalk inspect-输出到成绩单或文件,smalltalk,Smalltalk,Smalltalkinspect是一个强大的工具。有没有什么(简单的)方法可以从inspect获取信息,并将其显示在转录本窗口中,或者写入文件,而不是在新窗口中显示 我之所以需要它,是因为我想为一个作为unix进程运行的程序(不是“窗口”程序)创建一种debbuger,并将信息记录到日志文件中 谢谢你的帮助 如果你问是否有内置的东西,那么我不这么认为(尽管如果你在使用Smalltalk的问题上加上标签会有所帮助) 尽管遍历inst变量并滚动您自己的变量(虽然可能不适用于直接对象)非常容易,但“最

Smalltalk
inspect
是一个强大的工具。有没有什么(简单的)方法可以从
inspect
获取信息,并将其显示在转录本窗口中,或者写入文件,而不是在新窗口中显示

我之所以需要它,是因为我想为一个作为unix进程运行的程序(不是“窗口”程序)创建一种debbuger,并将信息记录到日志文件中


谢谢你的帮助

如果你问是否有内置的东西,那么我不这么认为(尽管如果你在使用Smalltalk的问题上加上标签会有所帮助)

尽管遍历inst变量并滚动您自己的变量(虽然可能不适用于直接对象)非常容易,但“最简单”的方法可能是查看inspector代码并查看它如何运行。例如,在Pharo 4.0中,可以(基本上)利用inspector代码,如下所示:

i := EyeInspector inspector: 1.
Transcript show: i objectClass; cr.
i elements do: [ :e | Transcript show: e; cr ].
将打印:

SmallInteger 'self'->1 'hex'->1 'octal'->1 'binary'->1 'character'->Character home 小整数 ‘自我’->1 ‘十六进制’->1 ‘八进制’->1 '二进制'->1 '字符'->字符主页
在Pharo中,您还可以通过以下方式将所有转录本输出发送到控制台:

NonInteractiveTranscript stdout install
如果您正在进行调试,则可以让调试器交互将内容转储到文件中(当然,您不能介入其中,但这对于无头系统很有用):


这里是Pharo 3.0。

您能否提供更多关于您想要实现的目标的详细信息?我无法想象你的设置。
NonInteractiveUIManager compile: 'openDebuggerOn: process context: context label: title contents: contentsStringOrNil fullView: bool 
| out  |
out := VTermOutputDriver stdout.

out 
  << ''NonInteractive Debugger: ''; 
  << title; 
  cr.

contentsStringOrNil ifNotNil: [ out << contentsStringOrNil; cr ].

(context stackOfSize: 20) do: [:s | out << s printString; cr ].

out << ''------------------------------''; cr; cr.  

^ self nonInteractiveWarning: ''Opening Debugger''' classified: #'ui-requests'.
ThreadSafeTranscript install.