“Debug adapter process has terminated unexpectedly”に苦しみまくった。
Rustの開発をする際デバッグ実行をしたかったが、”Debug adapter process has terminated unexpectedly”エラーが出てそもそもデバッグ実行できないことが多々あり、ストレスが溜まっていた。
そのときのメモを残しておこうと思う。
ちなみに開発環境はVSCodeで、デバッガはCodeLLDB(拡張機能)を使っている。
結局どうした?
いろいろ調査してここに行き着いた。とりあえずざっくり読んで浅く以下のような情報をインプットした。
・Windowsで開発する際には2つのデバッグ情報形式を扱うインターフェース(ABI)があるみたい。「“MSVC” ABI
x86_64-pc-windows-msvc
」「 “GNU” ABI x86_64-pc-windows-gnu
」の2つ。・ちなみにRustupのほうでデフォルトインストールされるのは「“MSVC” ABI」。
・一応LLDBは両方に対応していることになっているが、「“MSVC” ABI」よりも「 “GNU” ABI」を使うほうがバグが少なそう。
なので、
$ rustup toolchain install x86_64-pc-windows-gnu
これでx86_64-pc-windows-gnu
をインストールしたうえで
$ rustup default x86_64-pc-windows-gnu
でx86_64-pc-windows-gnu
を使うようにしたところ、”Debug adapter process has terminated unexpectedly”は改善し、無事デバッグに着手することができるようになった。
(もちろん開発内容によってはこんな場当たり的な対応でOKなわけはないとは思うが、ひとまず自分の開発(デバッグ)は進められるようになったのでよしとする)
ちなみに(チームみんなで同じ苦しみを味わう必要はないので…)
チームで開発しているときにはrust-toolchain.toml
でRustのバージョンを指定している場合もあるかもしれない。
そんな場合はいっそのこと
[toolchain]
channel = "x86_64-pc-windows-gnu"
のように変更することを提案してもよいかもしれない。
こうすればチーム全体としてデバッグできない問題に悩まなくて済むようになるかも。