Eclipse CDT로 log4cpp 샘플 코드를 디버깅 해보십시오.

환경



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 선택


Project name, Project Type, Toolchains 입력


2. 소스 코드 폴더를 만듭니다.



(필수가 아님)

File -> New -> Source Folder 메뉴 선택


폴더 이름에 "src"를 설정


3. 파일을 가져옵니다.



가져올 폴더에서 오른쪽 메뉴 -> Import


일반 -> 파일 시스템


Import하고 싶은 파일과 저장처를 선택 샘플 코드와 property 파일을 Import 한다
샘플 코드: testPropertyConfig.cpp


property 파일: testConfig.log4cpp.properties


소스 Tree에 추가됨


4. 포함 경로를 통과합니다.



Project -> Propertis 메뉴 선택


C/C++ General -> Paths and Symbols 메뉴 선택. Includes 탭에서 Add 버튼을 클릭하고 log4cpp의 Include Path를 입력합니다.






5. 라이브러리 경로를 통과합니다.



라이브러리 탭에서 추가 버튼을 클릭하고 log4cpp의 라이브러리 경로를 입력합니다.


pthread의 Library Path를 입력하십시오.


라이브러리 탭에서 추가 버튼을 클릭하고 log4cpp의 라이브러리 파일을 입력합니다. 파일명의 머리의 lib와 확장자는 삭제한다. (liblog4cpp.so -> log4cpp)


Pthread의 Library File을 입력합니다. (libpthread.so -> pthread)


6. 빌드한다.



빌드 아이콘을 클릭합니다.


7. 중단점을 설정합니다.



멈추고 싶은 곳에서 오른쪽 메뉴를 열고 Add Breakpoint 메뉴 선택




Breakpoint가 표시됨


8. 디버깅합니다.



디버그 버튼을 누릅니다.



콘솔에 오류가 표시되면 환경 변수를 설정합니다.


/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 메뉴 선택


Enviroment 탭에서 환경 변수를 설정합니다.


Debug perspective를 열거나 대화 상자가 표시되므로 yes를 클릭하십시오.


Breakpoint에서 정지하고 있는 것을 확인할 수 있다. Step Over 아이콘을 클릭합니다.


한 줄 앞으로 정지하고 있는 것을 확인할 수 있다.


Resume 아이콘을 클릭합니다.


콘솔에 실행 결과가 출력되고 있는 것을 확인할 수 있다. 프로그램이 종료되고 있는 것도 확인할 수 있다.


9. makefile 확인



「5. 라이브러리 패스를 통과한다.」에서 설정한 내용을 확인할 수 있다.


「4. 인클루드 패스를 통과한다.」에서 설정한 내용을 확인할 수 있다.

좋은 웹페이지 즐겨찾기