크로스 플랫폼 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
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!