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