linux
-
ltrace 도구IT/DevOps 2011. 6. 15.
ltrace명령어는 프로그램가 받은 시그널과 동적 라이브러리 호출에 대하여 trace가능한 도구이다.strace와 마찬가지로, 디버깅의 목적과 프로그램의 동작방식의 이해를 위한 도구로 사용된다. ※ 비슷한 명령어로 strace가 있다.. 비슷하지만 trace하려는 내용이 서로 다르다. strace는 시스템콜과 시그널을 trace하는 도구이며, ltrace는 동적라이브러리(유저레벨)와 시그널을 trace한다. 2011/06/12 - [IT Dictionary/Linux] - [Tool] strace man 명령어를 통해 ltrace에 대해 알아보도록 하자. morenice@ubuntu:~$ man ltrace NAME ltrace - A library call tracer SYNOPSIS ltrace [-..
-
strace 디버깅 도구IT/DevOps 2011. 6. 12.
strace란 시스템 콜 함수들과 시그널 처리에 대해서 트레이스할 수 있는 명령어입니다. 권한 오류 문제나, 시스템 자원 부족등의 실행오류가 나타날 때 불친절한 프로그램들은 결과를 보여주지 않지만, strace를 해보면 시스템 콜 함수들이 실패 할 때의 오류 원인들이 함께 나타나기 때문에 프로그램의 디버깅에 활용됩니다. 트레이스를 통하여 어떤 시스템 함수를 호출하고 시그널 처리되는지 볼수 있기 때문에 프로그램이 어떤 동작을 하는지 유추 할 수도 있다. man page를 보면 손쉽게 해당 명령어의 목적과 자세한 사용방법, 주의사항이 나온다.(잘 모르는게 나오면 일단 구글링이 아니라 man 명령어를 실행시키는 습관을 들이자) man strace NAME strace - trace system calls an..
-
Window OS에서 Linux 개발환경 구축IT/DevOps 2011. 6. 11.
Windows에서 Linux개발을 하는 방법은 3가지가 있다. MinGW (Minimalist GNU for Windows) Windows Native 프로그램을 만들 수 있는 gcc 컴파일러와 assembler, linker, archive manager를 제공. Cygwin Windows에서 linux 환경을 제공. Virtualization & Linux Install MinGW, Cygwin 환경들은 Windows OS 위에서 실행되는 프로그램들이기 때문에, Windows 컴파일러인 MSVCR 시리즈의 DLL에 Dependency를 가질 수 밖에 없다.간단한 환경 구축에 재미를 찾는분들에겐 권해드릴순 있지만 실제로 linux를 설치하고 개발을 하시길 권장해드립니다. 하지만 linux를 PC에 직접..
-
Debug, addr2lineIT/DevOps 2011. 1. 20.
addr2line 은 프로그램의 심벌 주소값들을 파일 이름과 라인 번호로 변환한다. 테스트 코드 : test.c #include void callback_func(){ printf("callback func\n"); } int main() { printf("Hello World\n"); callback_func(); return 0; } make symbol ~ $ gcc -Wl,-Map=test.map -g -o test test.c ~ $ grep callback test.map 0x0000000000400508 callback_func 라인 확인 ~ $ addr2line -i 0x0000000000400508 -e test ~/test.c:4 프로그램이 실행 중, 런타임 오류가 발생한 경우 symb..
-
Alias 설정IT/DevOps 2011. 1. 17.
습관대로 .bashrc에 alias설정을 할려고 vi ~/.bashrc로 파일을 열어보니 다음과 같은 내용을 찾게 되었다. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi alias에 대한 추가적인 정의는 bash_aliases 파일에서 하라고 나와 있다. .bash_aliases을 파일을 만들고 자주 사용하는 cp, mv, rm 에 대해서 -i 옵션 alias를 주었습니다. vi ~/.bash_aliases alias rm='rm -i' alias mv='mv -i' alias cp='cp -i' 개인적으로 이렇게 설정 내용을 분리하는 것은 관리하기 좋은 방법이라고 생각한다.
-
Linux 개발환경 - 컴파일러(gcc) & 텍스트에디터(vim) 설치IT/Linux C 2010. 9. 23.
환경 : Ubuntu 윈도우 프로그래머라면 Visual Studio 설치만으로도 일부 개발환경을 구축할 수 있지만, 리눅스 기반 개발을 위해서 필수적인 개발 환경을 위해 몇가지 패키지를 설치 해야 한다. 컴파일러 빌드 도구 소스코드 작성 툴(텍스트 에디터) 디버깅 툴 C Compiler 설치 C, C++ 컴파일러를 설치한다.(gcc,g++,cc..) xutils-dev는 gccmakedep(소스코드 의존관계)을 사용하기 위해서 설치한다. sudo apt-get install g++ xutils-dev Man pages 설치 개발에 있어서 기본 man으로는 C, C++ 등의 함수 설명을 확인할 수 없다. 다음과 같이 개발 api에 대한 manual을 설치한다. sudo apt-get install manp..
-
Ubuntu 서버 ssh 접속IT/DevOps 2010. 9. 19.
[원격접속 환경 구성] sshd ( 원격 접속 데몬 ) 설치와 실행 morenice@ubuntu:~$ sudo apt-get install ssh morenice@ubuntu:~$ sudo /etc/init.d/ssh start * Starting OpenBSD Secure Shell server sshd [ OK ] 시작프로그램 등록 /etc/rc.local에 등록하여 부팅 때 마다 ssh 서버를 실행되도록 설정. morenice@ubuntu:/etc$ sudo vi /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the scrip..
-
Subversion-소스코드 관리 환경 구축IT/Tools 2010. 9. 19.
소스코드 관리 툴인 Subversion을 설치한다. 설치 환경 : Ubuntu-Server 10.4 [설치 과정] apt-get install 명령어를 통한 subversion 설치 다음 명령어를 통하여 간단하게 설치를 할 수 있다 morenice@ubuntu:~$ sudo apt-get install subversion svn로 사용할 디렉토리 생성과 svn daemon 프로세스 활성화 svn의 데이터를 저장할 디렉토리 생성 svn이 서버로 동작하기 때문에 daemon을 실행시켜 서버를 실행 morenice@ubuntu:/var$ cd /var/ morenice@ubuntu:/var$ sudo mkdir subversion # 디렉토리 생성 [sudo] password for morenice: more..