selecao3のブログ

技術系の備忘録

VScodeでデバッグしたら変数が表示されなかった

環境

  • GCE(Debian 9.9)
  • VScode insider(1.36)
  • Rust(1.38.0-nightly)
  • lldb(3.8)

VScode拡張機能一覧

  • CodeLLDB(1.2.3)
  • Rust(rls)(0.6.1)

問題点

VScode(insider)でRustのコードをデバッグした際、左側の変数が表示されなかった。

f:id:selecao3:20190719104914p:plain
赤枠のローカル変数の部分が表示されなかった

結論

lldbのバージョンが古すぎたのと、python-lldbがインストールされていなかった。
sudo apt install python-lldb-6.0
sudo apt install lldb-6.0
をコンソール上で実行すれば解決。

経緯

VScodeでRustのデバッグ環境がないのツラすぎるっぴと思い始めたので下記のサイト様を参考にデバッグ環境を作成。
qiita.com
作成して、いざテストコードを走らせてみたらRegisters以外何も表示されていない現象が起きた。
調べまくると以下のissueに辿り着いた
stackoverflow.com
lldbのバージョンが古すぎると動かんぞとのこと。
いや、わいはちゃんと
sudo apt install lldb
ってやったし最新版がインストールされてるはずやと思っていたが
sudo apt search lldb
としてみるとlldb-6.0というものがあった。トラップかなにかか?
というわけで
sudo apt remove --purge lldb
sudo apt install lldb-6.0

とすると、python-lldbがインストールされてへんぞと怒られたので
sudo apt install python-lldb-6.0
sudo apt install lldb-6.0

としてデバッグを開始したところ、左側の変数が表示されるようになった。

備考

デバッグ環境の必要性

以下、淡々と

  • デバッグが必要な状況:重めの開発。フレームワーク抜きで自作で1000行とか書いてたりするようなプログラムとか(?)
  • デバッグが不必要な状況:軽めの開発。フレームワーク有りで自分は100行ぐらいしか追記していないようなプログラムとか(?)。print関数で大抵のバグが取れるようなもの。

以下、だらだらと
以前は簡単なWEBアプリしか作成していなかったため、「デバッグ?printで十分やろうがい!?」と考えていたが、最近、DeepLearningのモデル開発という重めな作業を始めてからはprintでいちいち確認するのがしんどい(どころか無理)と思うようになってきた。
プログラミングめちゃつよマンが作ったエディタ上でデバッグ環境を作成したうえでデバッグ機能を使うと、自動的に変数の中身が分かり、どのタイミングで変数に値が代入されたかなどが分かる。
授業の課題並のコードや軽いアプリ開発ならprintで十分だと思うが、重めの開発はprintだけではバグが取りきれない可能性があるのでそういう場合はデバッグ環境を整えた方がええんでないでしょうか