開発者の皆さん、こんにちは!
VSCode の ObjectScript エクステンションで、プロセスにアタッチしてデバッグする方法についてご紹介します。
ObjectScript エクステンションの基本的な操作方法については、[こちらの記事](https://jp.community.intersystems.com/node/482976)をぜひご参照ください。
解説ビデオ(4分ちょっと)もあります。ぜひご参照ください。
###
### 手順1:launch.json の用意
VSCode のデバッグ実行に関連する各種の構成情報を記述するための launch.json に ObjectScript エクステンション用の設定を記述します。
![](/sites/default/files/inline/images/images/image(1412).png)
(ビデオだと、最初~1:31 で解説しています)
プロセスにアタッチするデバッグ設定例は以下の通りです。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "objectscript",
"request":"attach",
"name": "Debugテスト",
"processId":"${command:PickProcess}",
"system": true
}
]
}
### **手順2:デバッグ対象コード の用意**
例) 第 1 引数:文字列(値渡し)、第 2 引数:参照渡しで配列変数、戻り値に文字列を返すクラスメソッド
(ビデオだと、1:31~1:55 でコードを解説しています)
Class Test.Debug
{
ClassMethod Hello(name As %String, ByRef val As %String) As %String
{
#dim ex As %Exception.AbstractException
set modori=""
try {
set modori="入力された名前は:"_name
write "こんにちは",name,"さん",!
set sub="",count=1
for {
set sub=$order(val(sub))
if sub="" {
set modori=modori_$CHAR(13,10)_"サブスクリプト指定数="_count
return modori
}
write sub," - ",val(sub),!
set count=count+1
}
}
catch ex {
set modori="エラー:"_ex.DisplayString()
}
return modori
}
}
###
### **手順3:アタッチ方法**
VSCode のデバッグメニューを利用して指定のプロセスにアタッチします。
(ビデオだと、2:02~2:27 で解説しています)
![](/sites/default/files/inline/images/images/image(1413).png)
### **手順4:実行対象プロセスで実行準備**
例)ターミナルプロセスを利用する場合の準備(IRIS の USER ネームスペースにログインした状態。手順 2 のクラス定義も USER ネームスペースに保存済であるとします。)
ターミナル実行例では、第 2 引数に指定する参照渡しの配列変数を作成しています(サブスクリプトやデータは任意で設定してください)。
実行対象プロセスの PID を調べるには、[特殊変数 $JOB](https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_vjob) を利用します。
(ビデオだと、2:31~2:54 で解説しています)
USER>set moji("Address")="東京都新宿区"
USER>set moji("Email")="taro@mail.com"
USER>set moji("Tel")="03-5321-6200"
USER>write $job
2770
### 手順5:デバッグ実行!
準備が完了したら、確認したプロセスにアタッチしてデバッグを実行します。
(ビデオだと、2:54~ で解説しています)
![](/sites/default/files/inline/images/images/image(1414).png)
デバッグを終了するときは、![](/sites/default/files/inline/images/images/image(1415).png) 赤の囲い 〇 の部分をクリックします。
ぜひお試しください!