私は現在、Visual Studio Codeとgdbserver用のCodeLLDBプラグインを使用してRaspberry Piでリモートデバッグを設定しようとしています。残念ながら、私が設定したすべてのブレークポイントは灰色で表示され、ツールチップに「解決された位置:0」と表示されるため、これは機能しないようです。
CodeLLDBのバージョンはでv1.7.0
、gdbserverはと言います(Raspbian 8.2.1-2) 8.2.1
。
何が私にこのような感じを与えますか?しなければならない問題は、lldbを使用してgdbserverに手動で接続すると正しく機能することですtarget create /path/to/bin
。gdb-remote host:port
有効な lldb バージョンは13.0.1
、CodeLLDB デバッガではと言います14.0.0-custom
。おそらくそれと関係がありますか?
とにかく関連部分は次のとおりですlaunch.json
。
{
"type": "lldb",
"request": "custom",
"name": "Remote executable 'bin'",
"preLaunchTask": "rust: remote ARM debug setup",
"targetCreateCommands": ["target create /path/to/bin"],
"processCreateCommands": ["gdb-remote host:port"]
}
追加情報:
- 私がデバッグしたい言語は錆
- バイナリはターゲットに合わせてコンパイルされます。
arm-unknown-linux-gnueabihf
- VSCodeを使用していますアーキテクチャLinux
私は私が知っていると思うものを整理するためにこの部分を投稿していますが、明らかに助けを得ることを願っています。どんなアドバイスもありがとうございました!
ベストアンサー1
この便利な小さなガイドを見つけた後、ついに仕事を始めました。 https://github.com/vadimcn/vscode-lldb/wiki/Breakpoints-are-not-getting-hit
このヒントを使用して、lldbが私のワークスペースではなく、いくつかのディレクトリ/project/src
で私のファイルを探していることを発見しました。つまり、起動設定に次のものを追加するだけです。
"sourceMap": { "/project/src": "${workspaceFolder}/path/to/src" }
今それは魅力のように動作します。私に残った唯一の質問は、/project/src
この道が何を意味するのかということです。なぜなら、絶対パスのように見えますが、私のコンピュータにはそのようなディレクトリが存在しないからです。
編集:このプロジェクトのためにクロスコンパイルを設定した友人と話し合った後、彼は私たちcross
(https://github.com/cross-rs/cross)コンパイル中にドッカーコンテナを使用します。/project/src
コンパイル時にソースファイルがマウントされるコンテナのディレクトリ。
これは最終的にこの追加のステップが必要な理由を最終的に明確にします!