LoginSignup
1
0

More than 5 years have passed since last update.

Eclipse CDT で log4cppのサンプルコードをデバッグしてみる

Last updated at Posted at 2018-03-04

環境

CentOS Linux release 7.0.1406 (Core)
Eclipse Version: Neon.3 Release (4.6.3)

・CentOSは、Dockerイメージ「centosjp」を元にしています。
 Dockerイメージ「centosjp」の作り方は、Window10に日本語対応CentOS7のdockerコンテナを作ってみたを参照。

・Eclipseは、「centosjp」をもとに、以下の方法でインストールしています。
 ネットにつながっていないCentOSにEclipse CDTとSubversionのプラグインを入れてみた。

・log4cppは、以下の方法でインストールしています。
 log4cppをCentOSにインストールする

・デバッグボタンを押すと、Operation not permitted.のエラーメッセージが出て実行できません。以下のように/proc/sys/kernel/yama/ptrace_scopeを書き換える必要がありました。

echo 0 > /proc/sys/kernel/yama/ptrace_scope

そのためには、--privileged オプション付きでDockerコンテナを実行させる必要があります。

docker run --privileged -ti  [コンテナID]  /bin/bash

1. プロジェクトを作成する。

C++ Project を選択する
image.png

Project name、Project Type、Toolchainsを入力
image.png

2. ソースコードフォルダを作成する。

(必須ではない)

File -> New -> Source Folderメニュ選択
image.png

Folder名に「src」を設定
image.png

3. ファイルをインポートする。

インポートしたいフォルダ上で、右メニュ -> Import
image.png

General -> File System
image.png

Importしたいファイルと格納先を選択 サンプルコードとpropertyファイルをImportする
サンプルコード:testPropertyConfig.cpp
image.png

propertyファイル:testConfig.log4cpp.properties
image.png

ソースTreeに追加される
image.png

4. インクルードパスを通す。

Project -> Propertis メニュ選択
image.png

C/C++ General -> Paths and Symbols メニュ選択。Includesタブで、Addボタンをクリックし、log4cppのInclude Pathを入力。
image.png

image.png

image.png

5. ライブラリパスを通す。

Libraryタブで、Addボタンをクリックし、log4cppのLibrary Pathを入力。
image.png

pthreadののLibrary Pathを入力。
image.png

Librariesタブで、Addボタンをクリックし、log4cppのLibrary Fileを入力。ファイル名の頭のlibと拡張子は削除する。(liblog4cpp.so -> log4cpp)
image.png

PthreadのLibrary Fileを入力。(libpthread.so -> pthread)
image.png

6. ビルドする。

ビルドのアイコンをクリックする
image.png

7. ブレークポイントをセットする。

止めたい箇所で右メニュを開き、Add Breakpointメニュ選択
image.png

image.png

Breakpointが表示される
image.png

8. デバッグする。

デバッグボタンを押す。

image.png

コンソールにエラーが表示される場合は、環境変数を設定する。

image.png

/root/workspace45/sample/Debug/sample: error while loading shared libraries: liblog4cpp.so.5: cannot open shared object file: No such file or directory 

環境変数 LD_LIBRARY_PATHにエラーとなったliblog4cpp.so.5のパスを設定する

Run -> Debug Configurations メニュ選択
image.png

Enviromentタブで、環境変数を設定する。
image.png

Debug perspectiveを開くかダイアログが表示されるので、yesをクリックする
image.png

Breakpointで停止しているのが確認できる。Step Overアイコンをクリックする。
image.png

1行進んで停止しているのが確認できる。
image.png

Resumeアイコンをクリックする。
image.png

コンソールに実行結果が出力されているのが確認できる。プログラムが終了しているのも確認できる。
image.png

9. makefileを確認する

「5. ライブラリパスを通す。」で設定した内容が確認できる。
image.png

「4. インクルードパスを通す。」で設定した内容が確認できる。
image.png

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