gpt4 book ai didi

debugging - GNU Smalltalk 80 调试器。如何调试smallcode代码?启动调试器?

转载 作者:行者123 更新时间:2023-12-03 17:17:46 24 4
gpt4 key购买 nike

在 GNU Smalltalk 80 中,可以用你自己的普通代码编写 smalltalk 代码
个人选择的文本编辑器。

因此,调试代码非常重要。

首先将文件另存为 txt 文件。然后使用“工具”从程序员文本编辑器打开文件。
这里的工具 - 链接 C/programme/GNU/gnu smalltalk/gst.exe。
代码正在运行。
不包括调试选项。
在这些情况下,编程是不可能的。
必须有一个“调试”选项才能激活。

我的问题是:如何包含该调试选项?通常,smalltalk 代码首先被调试。

最佳答案

GNU Smalltalk 包括调试工具。它实现了 Debugger Smalltalk 80 中提到的类: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。其他操作系统可能会将文件放在不同的位置。

迷你调试器 Hello World

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)

关于debugging - GNU Smalltalk 80 调试器。如何调试smallcode代码?启动调试器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32231171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com