지난 Post에 이어서 Ubuntu에서 Valgrind로 Memory Leak을 검사하는 방법의 활용편으로 Valgrind의 GUI Front-end로 Memory Leak을 검사하는 방법과 Callgrind를 사용하는 간단한 방법, 그리고 Eclipse 내에서 Valgrind를 사용하는 방법을 알아보도록 하겠습니다.

5. 유용한 Front-end

Valgrind를 사용해서 Terminal에서 Memory Leak을 검사하는 방법을 알아봤지만, 아무래도 좀 더 보기 편리하고 사용하기 쉬운 쪽이 생산성이 좋을 것입니다. 그래서 이번에는 Valgrind를 위한 유용한 Front-end를 소개하려 합니다.

5.1. Alleyoop Memory Checker

Alleyoop은 GTK+ 기반으로 만들어진 GUI Front-end입니다. 이 Program은 Valgrind의 Memcheck Tool의 결과를 좀 더 보기 쉽게 표현해 주고 해당 Code를 쉽게 확인할 수 있습니다.

Continue reading »

Tagged with:  

이전 Post에 이어서 이번 Post에서는 Eclipse를 사용하여 Autotools Project를 직접 만들어 보면서 개발하는데 발생하는 여러가지 문제들을 해결해 보도록 하겠습니다.

5. Autotools Project 생성

설치 및 설정을 마쳤으니 이제 Eclipse를 사용해서 Autotools Project(C Project)를 만들어 봅시다.

Eclipse - New Project

Eclipse - New Project

C Project를 새로 만들기 위해서 Eclipse를 실행한 다음, File -> New -> C Project를 Click합니다.

Continue reading »

Tagged with:  

이전에 Eclipse CDT를 사용하여 개발했던 Project에 Autotools를 적용하기 위한 방법을 찾다가 Eclipse Plugin을 살펴보니 Incubation 중에 Autotools Support for CDT를 찾을 수 있었습니다.

그것을 사용해서 기존의 Project를 Autotools Project로 만들어 보니, 기존에 Autotools를 조금 사용할 줄 알면 편리하게 개발할 수 있다는 생각이 들더군요.

그래서 이번 Post에서는 Project를 만들면서 경험했던 삽질들을 정리할 겸해서, Ubuntu에서 Eclipse CDT를 사용하여 Autotools Project를 생성하여 개발하고 Debugging하는 방법을 적어보도록 하겠습니다.

1. Autotools?

먼저 Autotools가 무엇인지 모르는 분들을 위하여 간단하게 설명해 보겠습니다. Linux에서 Apache나 PHP와 같은 Open-source Project를 Compile 해 본 경험이 있다면 대부분 다음과 같은 과정을 거쳤을 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
(blah blah....)

# make
make  all-recursive
make[1]: Entering directory `/home/ioriy2k/workspace/test'
Making all in src
make[2]: Entering directory `/home/ioriy2k/workspace/test/src'

gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.c
mv -f .deps/test.Tpo .deps/test.Po
gcc  -g -O2   -o test test.o  
(blah blah...)

# sudo make install
Making install in src
make[1]: Entering directory `/home/ioriy2k/workspace/test/src'
make[2]: Entering directory `/home/ioriy2k/workspace/test/src'

test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c test '/usr/local/bin'
(blah blah...)

Continue reading »

Tagged with: