크로스 플랫폼 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 실행 파일
을 실행합니다. 여기서 portnumber는 사용되지 않은 포트입니다.
호스트 시스템에서 gdb
도구를 사용하여 대상 서버에 원격으로 연결합니다: (gdb) target remote :localhost:port number
.
-g
및 -fvisibility=hidden
과 같은 LLDB 호환 플래그를 사용하여 대상 프로그램을 컴파일합니다. lldb-server platform --listen :port number :program path
를 실행하세요. 원격 연결: 호스트 시스템에서 lldb
를 실행하고 대상 서버에 원격으로 연결합니다: (lldb) 플랫폼 연결 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🎜 🎜GDB 시작 서버: 🎜🎜
gdbserver :1234 Target🎜🎜 서버에 원격으로 연결: 🎜🎜
gdb (gdb) target remote localhost:1234🎜🎜 중단점 설정 및 디버그: 🎜🎜
(gdb) break main (gdb) run🎜🎜 LLDB를 사용하여 간단한 크로스 플랫폼 프로그램 원격 디버그: 🎜🎜🎜🎜Target.cpp 소스 코드: 🎜 🎜
#include <iostream> int main() { std::cout << "Hello from Target!" << std::endl; return 0; }🎜🎜Target.cpp 컴파일: 🎜🎜
clang++ -g -fvisibility=hidden Target.cpp -o Target🎜🎜LLDB 서버 시작: 🎜🎜
lldb-server platform --listen :1234 ./Target🎜🎜원격으로 서버에 연결: 🎜🎜
lldb (lldb) platform connect connect://localhost:1234🎜🎜중단점 설정 및 디버그: 🎜🎜
(lldb) breakpoint set -n main (lldb) run
위 내용은 크로스 플랫폼 C++ 프로그램을 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!