現在、Linux for VSCodeでのLLDBサポートが不足しています。 それは明らかに機能しません。
vscode-cpptoolsを使用してLinuxでClangを使い始める方法に関する公式ドキュメントもありません。
LinuxでClang / LLDBの公式サポートを追加することは、絶対に素晴らしいことです。 LLVMのクロスプラットフォームの性質のおかげで、それをWindowsに拡張することも素晴らしいでしょう。
ええ、それはhttps://code.visualstudio.com/docs/cpp/config-clang-mac(Macの参照はLinuxに変更されています)とhttps://code.visualstudio.com/docs/の組み合わせのようなものですわかりません(
LinuxでLLDBデバッグを機能させるには、 lldb-mi
実行可能ファイルを取得する必要があります。
それができたら、次のようにlaunch.json
構成を変更する必要があります。
{
...
"miDebuggerPath": "path/to/lldb-mi".
"miMode": ''lldb"
}
@ sean-mcmanusに感謝します。
ねえ@WardenGnaw 、あなたが古いクローズドチケットでそれを言っているのに気づきました。 しかし、私は自分のマシンでそれを機能させることができませんでした。
私が見つけたlldb-mi
でファイルを/usr/bin/
が、私は使用してそれをターゲットするときそれを動作させることができなかった"miDebuggerPath": "usr/bin/lldb-mi"
。 lldb-mi-10
を見つけることができないことについて何か?
それはベルを鳴らしますか?
Ubuntu 20.04はlldb-mi-10
をlldb
と一緒にパッケージ化するのを忘れているようですので、 lldb-9
インストールした後に"miDebuggerPath": "usr/bin/lldb-mi-9"
を使用しようとしましたが、役に立ちませんでした。
@WardenGnawは、 "miDebuggerPath": "usr/bin/lldb-mi-9"
機能するかどうかを確認できますか? デバッグを機能させるには、具体的に"miDebuggerPath": "usr/bin/lldb-mi"
である必要がありますか?
特に「usr / bin / lldb-mi」である必要はなく、miインターフェースを使用する有効なデバッガーを指す必要があります。
テストする1つの方法は、バイナリを実行して、 -interpreter-exec console "version"
に応答するかどうかを確認することです。
@ WardenGnawlldb-miがUbuntuでサポートされなくなるようです。
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-10/+bug/1872387
これに対する解決策はありますか? VSCodeでlldbを使用できれば本当にありがたいです。
現状では、VS Codeで古いバージョンのlldbを使用することに限定されており、明確にするために、VSCodeを使用するUbuntu20.04でlldb-mi-9を正しく動作させることさえできませんでした。
更新:Ubuntu 20.04用にlldb-mi
ビルドを取得しましたが、ランタイムの問題がたくさん発生しました。
このビルドでは、liblldb.soとlldb-serverを出荷する必要がある場合があります。
マチルの要件は次のとおりです。
_まだ調査中_
Linux(Ubuntu 20.04)のvscodeでclangを使用しようとしたときにも同様の状況が発生し、miDebuggerPathが無効なパスであることがわかりました。 それで、それは実際にはバグですか?
@zbhxlj llvmグループは、llvm-toolchain-10以降でlldb-mi
を出荷しないことを決定しました。
clangとlldbを使用するには、ユーザーはソースからlldb-miをビルドし、ビルドされたlldb-mi
バイナリをmiDebuggerPath
にポイントする必要があります。
@WardenGnawは、Pythonや呪いなしでコンパイルし、それが要件の最小セットを満たしているかどうかを確認できます。
clangに関しては、LLDB-MIで使用するためにclangが存在すると考えるのは無理ではないと思います。
さて、もう一度テストして、Ubuntu18.04で動作するようにしました。
方法は次のとおりです。
apt
介して次のパッケージをインストールしますsudo apt install clang-10 llvm-10-dev liblldb-10-dev
sudo ln -s /usr/bin/clang-10 /usr/bin/clang
sudo ln -s /usr/bin/clang++-10 /usr/bin/clang++
sudo ln -s /usr/bin/lldb-10 /usr/bin/lldb
# This one is a bit strange but VSCode only looks for the name `lldb-server-10.0.0` but not `lldb-server-10`
sudo ln -s /usr/bin/lldb-server-10 /usr/bin/lldb-server-10.0.0
lldb-mi
実行可能ファイルをビルドしますgit clone https://github.com/lldb-tools/lldb-mi.git
cd lldb-mi
cmake .
cmake --build .
sudo cp src/lldb-mi /usr/bin/
これらはそれであるはずです。 そして、これが私のlaunch.json
です。 基本的にはclang++
プリセットのデフォルトのものだけで、正しく覚えていれば何も変更されません。
{
// 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": [
{
"name": "clang++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: clang++ build active file",
"miDebuggerPath": "/usr/bin/lldb-mi"
}
]
}
@WardenGnaw試してみてください。
最も参考になるコメント
さて、もう一度テストして、Ubuntu18.04で動作するようにしました。
方法は次のとおりです。
apt
介して次のパッケージをインストールしますlldb-mi
実行可能ファイルをビルドしますこれらはそれであるはずです。 そして、これが私の
launch.json
です。 基本的にはclang++
プリセットのデフォルトのものだけで、正しく覚えていれば何も変更されません。@WardenGnaw試してみてください。