在GNU Smalltalk 80中,可以在自己的平面中编写smalltalk代码 个人选择的文本编辑。
因此,调试代码非常重要。
首先将文件另存为txt文件。然后使用" Tools"从程序员文本编辑器打开文件。 这里的工具 - 链接C / program / GNU / gnu smalltalk / gst.exe。 代码正在运行。 调试选项不包括在内。 在这些情况下,编程是不可能的。 必须有一个"调试"选项激活。
我的问题是:如何包含该调试选项?通常,首先调试smalltalk代码。
答案 0 :(得分:1)
GNU Smalltalk包含用于调试的工具。它实现了{em> Smalltalk 80中提到的Debugger类:DebugTool.st
中的语言。与Debugger
一起提到的其他类不一定是实现的,可能是因为它们与GUI操作有关。
相反,GNU Smalltalk提供MiniDebug命令行调试器,用于GNU Smalltalk或IDE不可用时。它或多或少是GDB的基本子集。
使用它的一种简单方法是将文件读入gst:
$ gst
GNU Smalltalk ready
st> FileStream fileIn: '/usr/share/gnu-smalltalk/examples/MiniDebugger.st'
"Global garbage collection... done"
Loading package DebugTools
FileStream
st>
请注意,MiniDebugger.st
的位置是Ubuntu 16.04的典型位置。其他操作系统可能会将文件放在不同的位置。
MiniDebugger的 hello world 示例是:
st> self halt
'nil error: halt encountered'
Halt(Exception)>>signal (ExcHandling.st:254)
Halt(Exception)>>signal: (ExcHandling.st:264)
UndefinedObject(Object)>>halt: (SysExcept.st:1464)
UndefinedObject(Object)>>halt (Object.st:1325)
UndefinedObject>>executeStatements (a String:1)
6 ^self activateHandler: (onDoBlock isNil and: [ self isResumable ])
(debug) c
st>
c
提示符处的(debug)
条目是“继续”。键入h
(或任何其他无效命令)将显示其他选项。
将MiniDebugger加载到gst REPL后,可以创建包含调试器的图像:
st> ObjectMemory snapshot: 'myDebuggerImage.im'
后来在gst
开始时重新加载(这假设'myDebuggerImage.im'位于当前目录中或默认情况下位于其他地方gst
):
$ gst -I myDebuggerImage.im
然后,只要控制流遇到Object:halt
,MiniDebugger就会出现。例如,如果我有文件:
"Halter.st"
Object subclass: Halter [
breakpoint [
self halt.
]
]
然后:
st> h := Halter new
a Halter
st> h breakpoint
'a Halter error: halt encountered'
...
(debug)
答案 1 :(得分:-1)
不同的小额目标针对不同的用户群。对于学习smalltalk,GNU是一个糟糕的选择。 Smalltalk是一种非常简单的语言,具有非常大的库和真正集成的开发环境。您在文本编辑器中的偏好对于此阶段并不重要(正如您可能发现的那样,也不是任何其他阶段)。与输入新代码或更改现有代码相比,您将花费更多时间阅读和导航代码。 Squeak和Pharo是两个开源实现,具有不错的浏览器和调试器