Debug
-
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..
-
windows dump debuggingIT/DevOps 2011. 5. 3.
windows dump 파일 분석 툴(win dbg) http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx windbg를 사용하기 위해서는 다음의 절차가 필요하다. 1. windbg 설치 2. OS symbol 설치 3. 문제점 확인 위의 링크에서 dump 분석 툴을 설치, 실행하여 File 메뉴에서 Open Crash dump 를 실행하여 dump 파일 선택 ※ dump 파일을 분석하기 위해서는 Crash로 인하여 생성된 dump파일이 있어야 한다. 이러한 dump파일은 메모리상태와 드라이버등의 문제를 찾을때 도움이 된다. dump파일을 선택하고 실행하니, 아래와 같이 symbol 오류 발생한다. 해당 dump가 만들어진 OS의 symbol..
-
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..