終了

ESDebugger for VSCodeのエラー

積極的な参加者 ,
Jun 12, 2020 Jun 12, 2020

リンクをクリップボードにコピー

コピー完了

VSCodeのプラグインであるExtendScript Debugger for VSCodeでスクリプトのデバッグをしているのですが、
 
Starting /Users/XXX/test.jsx in target: indesign-15.064 and engine: hoge.
Exception: TypeError: Cannot read property '_scriptPath' of undefined
 
というエラーが出て、これ以降デバッグできなくなってしまいました。
InDesignのスクリプトパネルから実行すると正しく実行されます。
 

何が原因でしょうか?

'_scriptPath'というプロパティは何を指していますか?

これまでもこのエラーは何度か出ていましたが、今回はマシンの再起動をしてもスクリプトをデバッグできなくなってしまいました。

 

スクリプトに関するフォーラムがわからずInDesignフォーラムに書きました。

適宜移動してください。

 

macOS 10.14.6

InDesign 15.0.3

Illustrator 24.1.2

ESDebugger 1.1.2

VSCode 1.46.0

Yusuke S.
キーワード
スクリプティング

表示

1.4K

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 2 件の正解

Community Expert , Jun 12, 2020 Jun 12, 2020

スクリプト関連に関しては各アプリケーションに設置されている「キーワード」による振り分けで分類されますのでこれでOKです。

さて、内容についてですが、これがややこしい話で見た事ない…(^-^;

って言っちゃうと終わりなので……

通常VSCから各アプリケーションへのスクリプトの受け渡しはBridgeTalkなんですが、バックでパケット監視してみると何かわかるかもしれません。

すごーく面倒ですが(^-^;

投票

翻訳

翻訳
Community Expert , Jun 12, 2020 Jun 12, 2020

結論的には何が原因かはわかりません。いくつかの情報を照らし合わせると,原因は次の項目にある可能性が高いと考えています。
・VSCodeのdebug機能で,通信エラーなど何らかの原因によりlaunch.jsonのbreakXMLが取得できない
・002BTBackend.jsxで,何らかの原因により'file'項目がundefinedになる

 

以下参考資料です。

 

ExtendScript Debugger for VSCodeのソースコードはここにあります。
~/.vscode/extensions/adobe.extendscript-debug-1.1.2/

 

見た感じ_scriptPathはブレークポイントとセッションを管理するのに必要なファイルパスの情報のようです。これ自体がundefinedであることまたはその他の理由でエラーが起こったとき,_scriptPathが見つからないと言っています。

 

_scriptPathが使われているのはESDebugRuntime.jsとESDebugSession.jsです。色々たどると参照しているのはbreakXMLという変数で,これはlaunch.j

...

投票

翻訳

翻訳
積極的な参加者 ,
Jun 12, 2020 Jun 12, 2020

リンクをクリップボードにコピー

コピー完了

追記です。

 

VSCodeのESDebuggerプラグインを再インストールしたら治りました(デバッグできるようになりました)。

ただこの'_scriptPath'というプロパティがやっぱりよくわかりません…。

Yusuke S.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jun 12, 2020 Jun 12, 2020

リンクをクリップボードにコピー

コピー完了

スクリプト関連に関しては各アプリケーションに設置されている「キーワード」による振り分けで分類されますのでこれでOKです。

さて、内容についてですが、これがややこしい話で見た事ない…(^-^;

って言っちゃうと終わりなので……

通常VSCから各アプリケーションへのスクリプトの受け渡しはBridgeTalkなんですが、バックでパケット監視してみると何かわかるかもしれません。

すごーく面倒ですが(^-^;

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
Jun 12, 2020 Jun 12, 2020

リンクをクリップボードにコピー

コピー完了

Ten Aさん、ご返信ありがとうございます。

 

BT経由なのはなんとなく知っていましたが、パケット監視かぁ、気が重いです…。

ひとまず再インストールでなんとかなったのですが、この例外で alert メソッドひとつすら実行できなくなってしまって非常に困りました。

 

何にせよ一筋縄ではいかない、ということはよくわかりました 笑

ありがとうございました。

Yusuke S.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Jun 12, 2020 Jun 12, 2020

リンクをクリップボードにコピー

コピー完了

結論的には何が原因かはわかりません。いくつかの情報を照らし合わせると,原因は次の項目にある可能性が高いと考えています。
・VSCodeのdebug機能で,通信エラーなど何らかの原因によりlaunch.jsonのbreakXMLが取得できない
・002BTBackend.jsxで,何らかの原因により'file'項目がundefinedになる

 

以下参考資料です。

 

ExtendScript Debugger for VSCodeのソースコードはここにあります。
~/.vscode/extensions/adobe.extendscript-debug-1.1.2/

 

見た感じ_scriptPathはブレークポイントとセッションを管理するのに必要なファイルパスの情報のようです。これ自体がundefinedであることまたはその他の理由でエラーが起こったとき,_scriptPathが見つからないと言っています。

 

_scriptPathが使われているのはESDebugRuntime.jsとESDebugSession.jsです。色々たどると参照しているのはbreakXMLという変数で,これはlaunch.jsonを経由してVSCodeとExtendScriptのやりとりをする文字列の引数のようです(https://marketplace.visualstudio.com/items?itemName=Adobe.extendscript-debug)。For Internal useと書いてあります。

 

最終的には,この引数のStringをxml2jsでパースしたオブジェクトのうち次の項目がundefinedになり,_scriptPathに代入されます。
break.frame[0].$.file
break.error[0].$.file

 

breakXMLが何なのかというと,おそらくBridgeTalkのバックエンド処理を定義している002BTBackend.jsxの出力です。ESTKの中身の11BTBackend.jsxとよく似ていますが,Diffにかけると変化があります。ESTKがうまく動いているならこの変更が原因かもしれません。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
Jun 14, 2020 Jun 14, 2020

リンクをクリップボードにコピー

コピー完了

sttk3さん、詳細な検証と情報、ありがとうございます。

とても勉強になりました。

ぜひエコシステムチームに対策してほしいです。

 

launch.json に使用できる設定の中で internal use というものがいくつかあるのは認識していたのですが、文字通り internal なのですね。

Yusuke S.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ガイド ,
Jul 17, 2021 Jul 17, 2021

リンクをクリップボードにコピー

コピー完了

最新

I had this same problem within the first hour of using VSCode / ESDebugger.

Thanks for pointing out it is related to breakpoints.

 

It worked for me to open "~/Library/Application Support/Code/User" and there remove contents from both globalStorage and workspaceStorage.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines