1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「SLAM入門」のプログラムをEclipseでデバッグする

Last updated at Posted at 2018-07-06

##この記事の目的

友納先生の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)を選択
Screenshot from 2018-07-06 14-17-06.png

[Finish]をクリック

ビルドしてみる

とりあえずビルドできるか確認してみます。
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に入れてみます。
Screenshot from 2018-07-06 14-31-06.png

Debug実行方法の指定と実行

さて、これでEclipseをつかってDebugシンボル入りの実行ファイルを生成できるようになりました。
あとはどのような構成で実行するか指定します。

  1. Project ExplorerのLittleSLAM-Debug@workで右クリック - [Debug As] - [Debug Configurations...]を選択
  2. [C/C++ Application]を選択し、[New Launch Configuration]をクリック
    こんな感じです。
    Screenshot from 2018-07-06 14-02-08.png
    Screenshot from 2018-07-06 14-05-07.png
    [Apply]をクリックして設定を適用します。
    ここまでできたら、[Debug]をクリックして実行

Screenshot from 2018-07-06 14-29-21.png
いつもどおりmain関数の開始時にHaltがかかるので三角ボタンで続行すると、こんな感じで実行できます。
変数の中身が見れてめでたしめでたし。

※実行速度は圧倒的に遅くなりますが、しょうがないというところで。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?