Remote Device 설정

1. Qt 상단 "Tools" 탭에서 "Options"을 선택하면 아래와 같은 창이 나옵니다.
좌측 "Devices" 탭에서 "Generic Linux Device" 선택한 후 "Start Wizard"를 눌러 진행합니다.

 

2. Device Name을 설정하고, Remote Debugging을 진행할 Target Board의 IP 주소, Username, Password를 입력하시면 됩니다.

 

3. Device에 대한 Connect가 정상적으로 이루어질 경우 "Device test finished successfully"가 표시됩니다.

 

4. Device를 추가한 이후에는 반드시 Apply를 선택하여 주셔야 적용됩니다.

Apply를 적용하지 않을 경우 갱신이 되지않아 추가한 Device가 보이지 않습니다.

 

Kits 및 Target Path 설정

5. 이제 Target Board에서 Remote Debugging을 하기 위해 Build & Run 탭에서 Kits를 선택하여 위에서 추가한 Device를 적용하여야 합니다.

Device에서 Manage 버튼을 누른 후 위에서 추가한 Device를 선택합니다.

Target Board의 CPU가 32-bit, 64-bit 사양에 따라 Compile를 설정해주어야 하는데, 현재 CPU는 64-bit이므로 해당 환경에 맞춰 Kits를 구성하였습니다.

 

6. Kits 구성을 완료하면 Projects 탭에서 기존 Desktop Qt 5.8.0 GCC 64bit Kits가 아닌 위에서 생성한 Test Qt 5.8.0 64bit Kits로 변경해주어야 합니다.

이후 빌드를 진행하면 Remote path not set으로 Target Board의 실행 디렉토리가 설정되지 않아 오류가 발생합니다.

 

7. 오류가 발생하면 Project 파일에서 Target Path를 아래와 같이 설정합니다.

Target.path의 경로는 실행파일을 생성할 경로를 입력하시면 됩니다.

 

8. Project 파일에 Target Path 입력 후 빌드를 진행하면 위에서 설정한 Target Path가 "Executable on device" 창에 자동으로 설정됩니다.

 

9. Target Board에 접속하여 확인해보면 위에서 만든 실행파일이 해당 경로에 생성된 것을 볼 수 있습니다.

libtestlib.so.1.0.0는 device_exe 프로그램에서 동적 로드할 프로그램입니다.

 

Remote Debugging 진행

10. Ctrl + F5 키를 눌러 Remote Debugging을 진행합니다.

"gdbserver : not found 오류 발생시" 아래와 같이 Target System에 gdb-gdbserver를 설치합니다.

- Error 발생시 화면

- Error 발생시 Target Board에 gdbserver 패키지 설치

# yum -y install gdb-gdbserver

 

11. Remote Debugging 시 해당 프로그램에서 동적 라이브러리를 로드할 경우, Debugger가 해당 라이브러리 안으로로 진입하지 못하는 경우가 있습니다.

접근하지 못할 경우 Tools-Options-Debugger 탭에서 "Additional Attach Commands" 란에 "set sysroot remote:/" 명령어를 입력합니다.

 

12. 위와 같이 입력 후 다시 Ctrl+F5 키를 눌러 Remote Debugging을 진행할 경우 이전과 다르게 실행시 Library 들이 나타납니다.

 

13. F11 키를 통해 로드된 동적 라이브러리로 진입하여 Remote Debugging을 하는 모습입니다.

 

14. 정상적으로 Remote Debugging 이후 프로그램이 종료된 모습을 확인할 수 있습니다.