SLAM 입문 프로그램을 Eclipse로 디버깅
이 기사의 목적
토모나 선생님의 SLAM 해설 본 「SLAM 입문」의 코드에 대해서, 디버그 모드로 실행하는 순서의 정리입니다.
손을 움직이면서 SLAM을 이해할 수 있는 책으로, 소스 코드 에 대해 매우 정중한 해설이 붙어 있어 기본적인 부분은 이만큼 읽으면 이해할 수 있습니다.
한편, 실행 도중에 어떻게 변수의 값이 변화하고 있는지, 내용이 신경이 쓰입니다.
디버그 설정에서 프로젝트를 실행하는 예가 없었기 때문에,
Eclipse와 친구가 되는 것도 겸해 작업한 메모로서 남깁니다.
실행 환경
코드와 별도로 배포된 데이터 세트는 책과 마찬가지로 LittleSLAM/dataset에 저장됩니다.
Eclipse로 Debug하기 전의 단계
CMakelist.txt 편집
게시된 리포지토리는 Release 빌드를 위한 CMakelist.txt이며 디버그 심볼을 포함하지 않습니다.
아래와 같이 변경을 해, 인수로부터 디버그용 프로젝트를 생성할 수 있도록 합니다.
여기을 참고했습니다.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c545275..f8b2bfe 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,10 @@ if(UNIX)
endif()
endif()
-SET(CMAKE_BUILD_TYPE "Release")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Release")
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE})
add_subdirectory(cui cui)
add_subdirectory(framework framework)
Eclipse 프로젝트 생성
위에서 디버그 심볼을 넣는 Makefile을 생성해 왔으므로,
이것을 사용하여 eclipse 프로젝트를 만듭니다. 또 해도 상기 슬라이드를 참고로, 아래와 같이 실시합니다.
cd {your-workspace}/LittleSLAM
mkdir work; cd work
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUID_TYPE=Debug ../
Eclipse 프로젝트로드
만든 Eclipse 프로젝트를 로드합니다.
[File] > [Open Projects from File System...] 선택
[Directory]를 클릭하고 아래와 같은 형태로 프로젝트의 디렉토리(LittleSLAM)를 선택
마침을 클릭
빌드 해 보자
우선 빌드할 수 있는지 확인해 보겠습니다.
Project Explorer LittleSLAM-Debug@work에서 마우스 오른쪽 버튼을 클릭 - [Build Project]
다음과 같은 내용이 콘솔에 출력되어 빌드가 끝납니다.
14:23:02 **** Build of project LittleSLAM-Debug@work ****
/usr/bin/make -j4 all
/usr/bin/cmake -H/home/<usrname>/eclipse-workspace/LittleSLAM -B/home/<usrname>/eclipse-workspace/LittleSLAM/work --check-build-system CMakeFiles/Makefile.cmake
・・・中略・・・
/usr/bin/cmake -E cmake_progress_start /home/<usrname>/eclipse-workspace/LittleSLAM/work/CMakeFiles 0
14:23:50 Build Finished. 0 errors, 1 warnings. (took 47s.152ms)
중단점 설정
적당한 곳에 브레이크 포인트를 넣어 둡니다.
우선 프로젝트의 cui/main.cpp에 넣어 보겠습니다.
디버그 실행 방법 지정 및 실행
이제 Eclipse를 사용하여 Debug 심볼이 포함된 실행 파일을 생성할 수 있습니다.
나머지는 어떤 구성으로 실행할지 지정합니다.
1. Project Explorer LittleSLAM-Debug@work에서 마우스 오른쪽 버튼을 클릭 - [Debug As] - [Debug Configurations...]를 선택합니다.
2. C/C++ Application을 선택하고 New Launch Configuration을 클릭합니다.
이런 느낌입니다.
적용을 클릭하여 설정을 적용합니다.
지금까지 완료되면 Debug를 클릭하여 실행
평소와 같이 main 함수의 개시시에 Halt가 걸리므로 삼각 버튼으로 계속하면, 이런 식으로 실행할 수 있습니다.
변수의 내용을 볼 수 있어 최선을 다하고.
※실행 속도는 압도적으로 늦어집니다만, 어쩔 수 없다고 하는 곳에서.
참고
Reference
이 문제에 관하여(SLAM 입문 프로그램을 Eclipse로 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Giso_/items/c1071d1c0bcc5f043581텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)