Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menyahpepijat program C++ merentas platform?
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🎜🎜 Sasaran 🎜Mulakan G DB pelayan: 🎜🎜
gdbserver :1234 Target🎜🎜 Lampirkan pada pelayan dari jauh: 🎜🎜
gdb (gdb) target remote localhost:1234🎜🎜 Tetapkan titik putus dan nyahpepijat: 🎜🎜
(gdb) break main (gdb) run🎜🎜 Nyahpepijat jauh program merentas platform mudah menggunakan LLDB🎜: 🎜 Kod Sumber: 🎜Target Sumber: 🎜 🎜 🎜
#include <iostream> int main() { std::cout << "Hello from Target!" << std::endl; return 0; }🎜🎜Kompilasi Target.cpp: 🎜🎜
clang++ -g -fvisibility=hidden Target.cpp -o Target🎜🎜Mulakan pelayan LLDB: 🎜🎜
lldb-server platform --listen :1234 ./Target🎜🎜Sambung ke pelayan dari jauh: 🎜🎜
lldb (lldb) platform connect connect://localhost:1234dan 🎜 breakpointee dan 🎜
(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!