Untuk nyahpepijat program C++ merentas platform, anda boleh menggunakan penyahpepijatan jauh GDB atau penyahpepijatan jauh LLDB: Penyahpepijatan jauh GDB: Pasang pelayan GDB pada sistem sasaran dan susun atur cara sasaran. Gunakan GDB pada sistem hos untuk menyambung ke pelayan sasaran untuk penyahpepijatan. Penyahpepijatan jauh LLDB: Pasang LLDB pada sistem hos dan susun atur cara sasaran. Mulakan pelayan LLDB pada sistem sasaran dan sambungkan ke sistem hos untuk penyahpepijatan.
Bagaimana untuk nyahpepijat program C++ merentas platform?
Pengenalan
Menyahpepijat program C++ merentas platform boleh mencabar kerana ia boleh dijalankan pada sistem pengendalian dan penyusun yang berbeza.この记事 menyediakan panduan untuk menyahpepijat program C++ merentas platform menggunakan penyahpepijatan jauh GDB dan penyahpepijatan jauh LLDB.
GDB Remote Debugging
gdbserver
) pada sistem sasaran. 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
dan -gdwarf=2
.
Pada sistem sasaran, jalankan gdbserver :portnumber target executable
, dengan portnumber ialah sebarang port yang tidak digunakan.
Pada sistem hos, gunakan alat gdb
dan lampirkan dari jauh ke pelayan sasaran: (gdb) target remote :localhost:port number
.
-g
dan -fvisibility=hidden
. platform pelayan lldb --listen :port number :program path
. Sambungan jauh: Pada sistem hos, jalankan lldb
dan sambung dari jauh ke pelayan sasaran: (lldb) platform connect connect://localhost:port number
.
#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
Atas ialah kandungan terperinci Bagaimana untuk menyahpepijat program C++ merentas platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!