C:\> pnuts -d { script }
C:\> pnuts -d:file scriptFile
C:\> pnuts -d:file -e expression
pnuts コマンドに-d オプションをつけるとデバッグモードでインタプリタを実行します。デバッグ・コマンドについては、「デバッグコマンド」を参照。
デバッガは、ASTインタプリタでのみ動作します。(コンパイラとは一緒に動作しません。)
C:\> pnuts -d Copyright (c) 1997-1999 Sun Microsystems, Inc. All rights reserved. Pnuts interpreter Version 1.0beta4, 1.2.2 (Sun Microsystems Inc.) > 1 # Stopped at ?:1 >>> 1 debug>
-d:ファイル が指定されると、ファイルからデバッグ・コマンドが読み込まれます。
C:\> pnuts -d:trace.dbg -e 'getProperty("java.version")'
reading /tmp/trace.dbg
# Stopped at ?:1
>>> getProperty("java.version")
debug> trace
on
debug> cont
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:1 >>> import("java.lang.System")
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:2 >>> import("java.util.Properties")
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:3 >>> import("java.io.InputStream")
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:4 >>> import("java.io.File")
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:5 >>> import("java.io.FileInputStream")
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:7 >>> function setProperty(name, val) {
prop = System::getProperties()
if (val == null) {
prop.remove(name)
} else {
prop.put(name, val)
}
}
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:16 >>> function getProperty(name) {
System::getProperty(name)
}
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:20 >>> function loadProperties(resourceOrStream) {
loadProperties(resourceOrStream, Properties())
}
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:24 >>> function loadProperties(input, prop) {
if (input instanceof String) {
url = getResource(input)
if (url == null) {
return null
}
prop.load(openURL(url))
} else if (input instanceof File) {
prop.load(fd = open(input))
fd.close()
} else if (input instanceof InputStream) {
prop.load(input)
} else {
throw(IllegalArgumentException(string(input)))
}
prop
}
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:16 >>> {
System::getProperty(name)
}
jar:file:/usr/local/pnuts/modules/pnuts-modules.jar!/pnuts/util/property.pnut:17 >>> System::getProperty(name)
# Returns "1.4.2"
trace cont
- stop at {ファイル名:}行
- ファイル名:行で実行を中断する
- stop in 関数{:N引数}
- 関数が呼ばれたときに実行を中断する。N引数が指定された場合、N引数の関数を対象にする。
- clear
- すべてのブレークポイントをクリアする。
- cont
- 実行を続ける。
- trace
- トレースモードをトグルさせる。(デフォルトは false)
- trace function {関数名}
- 関数トレースモードをトグルさせる。(デフォルトは false)
- step {NUM}
- NUM ステップ実行する。 (デフォルトは 1 ステップ)
- step up
- 実行中の関数から抜ける
- next {NUM}
- NUM 行実行する (関数呼び出しを通過する)。 (デフォルトは 1 行)
- help
- コマンドの要約を表示する。
- ?
- helpと同じ。
- <その他>
- Pnutsスクリプトとして評価します。
pnuts コマンドの-vdオプションが指定された場合、端末型デバッガの変わりにビジュアル・デバッガが使われます。pnuts.debuggerプロパティについては「プロパティ」を参照。
淡い青色の行は、現在の位置を表しています。オレンジ色は、その行にブレークポイントがあることを示します。 ブレークポイントの設定および解除は、右クリックで行います。