クロスプラットフォーム C++ プログラムをデバッグするには、GDB リモート デバッグまたは LLDB リモート デバッグを使用できます。 GDB リモート デバッグ: ターゲット システムに GDB サーバーをインストールし、ターゲット プログラムをコンパイルします。ホスト システムで GDB を使用して、デバッグのためにターゲット サーバーに接続します。 LLDB リモート デバッグ: ホスト システムに LLDB をインストールし、ターゲット プログラムをコンパイルします。ターゲット システム上で LLDB サーバーを起動し、デバッグのためにホスト システムに接続します。
クロスプラットフォーム C++ プログラムをデバッグするにはどうすればよいですか?
はじめに
クロスプラットフォーム C++ プログラムのデバッグは、異なるオペレーティング システムやコンパイラで実行できるため、困難な場合があります。この记事では、GDB リモート デバッグと LLDB リモート デバッグを使用してクロスプラットフォーム C++ プログラムをデバッグするためのガイドを提供します。
GDB リモート デバッグ
gdbserver
) をターゲット システムにインストールします。 gdbserver
)。-g
和 -gdwarf=2
。gdbserver :端口号 目标可执行文件
,其中端口号是任意未使用的端口。gdb
工具并远程附加到目标服务器:(gdb) target remote :localhost:端口号
。LLDB 远程调试
-g
和 -fvisibility=hidden
。lldb-server platform --listen :端口号 :程序路径
。lldb
并远程连接到目标服务器:(lldb) platform connect connect://localhost:端口号
-g
や -gdwarf=2
などの GDB 互換フラグを使用してターゲット プログラムをコンパイルします。
ターゲット システムで、gdbserver :portnumber target executable
を実行します。ここで、portnumber は未使用のポートです。
ホスト システムで、gdb
ツールを使用し、ターゲット サーバーにリモート接続します: (gdb) ターゲット リモート :localhost:ポート番号
。
-g
や -fvisibility=hidden
などの LLDB 互換フラグを使用してターゲット プログラムをコンパイルします。 lldb-server platform --listen :portnumber :program path
を実行します。 リモート接続: ホスト システムで lldb
を実行し、ターゲット サーバーにリモート接続します: (lldb) platform connect connect://localhost:portnumber
。
#include <iostream> int main() { std::cout << "Hello from Target!" << std::endl; return 0; }
g++ -g -gdwarf=2 Target.cpp -o Target
gdbserver :1234 Target
gdb (gdb) target remote localhost:1234
(gdb) break main (gdb) run
#include <iostream> int main() { std::cout << "Hello from Target!" << std::endl; return 0; }
clang++ -g -fvisibility=hidden Target.cpp -o Target
lldb-server platform --listen :1234 ./Target
lldb (lldb) platform connect connect://localhost:1234
(lldb) breakpoint set -n main (lldb) run
以上がクロスプラットフォーム C++ プログラムをデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。