SLAM 입문 프로그램을 Eclipse로 디버깅

이 기사의 목적



토모나 선생님의 SLAM 해설 본 「SLAM 입문」의 코드에 대해서, 디버그 모드로 실행하는 순서의 정리입니다.
손을 움직이면서 SLAM을 이해할 수 있는 책으로, 소스 코드 에 대해 매우 정중한 해설이 붙어 있어 기본적인 부분은 이만큼 읽으면 이해할 수 있습니다.
한편, 실행 도중에 어떻게 변수의 값이 변화하고 있는지, 내용이 신경이 쓰입니다.

디버그 설정에서 프로젝트를 실행하는 예가 없었기 때문에,
Eclipse와 친구가 되는 것도 겸해 작업한 메모로서 남깁니다.

실행 환경


  • Ubuntu 16.04
  • Eclipse Photon

  • 코드와 별도로 배포된 데이터 세트는 책과 마찬가지로 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가 걸리므로 삼각 버튼으로 계속하면, 이런 식으로 실행할 수 있습니다.
    변수의 내용을 볼 수 있어 최선을 다하고.

    ※실행 속도는 압도적으로 늦어집니다만, 어쩔 수 없다고 하는 곳에서.

    참고


  • htps : // 기주 b. 코 m / 후로 오 rg / ぃ t ぇ S ぁ M
  • htps //w w. 이 bm. 이 m/숏 rt/k의 w㎇d 꼼꼼히 r/그럼/s sQ2R2_9.0.1/오르. 에cぃp해. cdt. c. 우세 r / 갓친 g_s r d / cdt_w_ m rt. htm
  • htps //w w. s에서 멋지다. 네 t / 하시모 m / ㅇ
  • 좋은 웹페이지 즐겨찾기