DAP(Debug Adapter Protocol)を試す
DAP(Debug Adapter Protocol)を試す。
Official page for Debug Adapter Protocolを見ながら、色々と試してみる。
LSPと同じようなものだと思われるので、とっつきは良かったのだが、 gdbとかlldbとか通常のデバッガのコマンドの対応が良くわからず苦労した。
Overview にあるシーケンス図に惑わされた感じ。
いくつかadapterを動かした感じだと、
1.adapter起動し、initializeを投げる
2.launch(やattach)コマンドで、実行ファイルを指定
3.breakpointの設定(setBreakpointsやserFunctionBreakpoints)
4.configurationDoneを投げると、実行ファイルが起動される(gdbのrunコマンド?)
5.breakpointとかで止まる(stoppedイベント)
公式ドキュメントの図だと、configurationDoneのあとで、launchしているように見えたので、 しばらく悩んでしまった。
stoppedイベントだと、止まった要因(breakpoint,step,exception,・・・)は分かるが、 具体的に止まった場所(どのファイルの何行目)は分からない。
stackTraceの応答を見れば良さそうなのだが、ちょっと面倒かも。
initializedイベントが送られるタイミングも最初、分からなかった。 initializeの後すぐに来るのかと思ったら、launchの後に来る。
initialized後がconfigurationの期間で、それが終わったらクライアントからconfigurationDoneを送れということか。