서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
DEBUG HACKS (디버그를 극대화하는 테크닉 툴)
저자 : 요시오카 히로타카|야마토 카즈히로|오오이와 나오히로
출판사 : 와우북스
출판년 : 2010
정가 : 27000, ISBN : 9788994405018
책소개
프로그래머가 프로그래밍을 할 때 피해갈 수 없는 디버그라는 프로세스에 관해서 기록한 책.
역전(歷戰)의 프로그래머가 경험에서 얻은 버그 찾는 법, 고치는 법을 수록하고 있으며, 보통은 눈에 잘 띄지 않는 리눅스 자체의 버그에 관한 Hack은 귀중한 정보가 될 것이다. 특히나 gdb나 valgrind, oprofile과 같은 편리한 툴에 관해서 확실히 설명하고 있다.
스스로 프로그래밍 설계, 구현, 테스트, 디버그 등을 수행하는 초급부터 중급 프로그래머를 대상으로, C/C++ 프로그래머뿐만 아니라 Perl/PHP/Python/Ruby 등 스크립트 언어로 프로그램을 작성하고 있는 사람들에게도 참고가 될 것이다.
목차
역자의 글
추천의 글
Credit
시작하며
1장 워밍업(warmingup)
01. 디버그란?
02. Debug Hacks 맵
03, 디버그의 이해
2장 디버그 전에 알아두어야 할 것
04. 프로세스의 코어덤프 얻기
05. 디버거(GDB)의 기본적인 사용법 #1
06. 디버거(GDB)의 기본적인 사용법 #2
07. 디버거(GDB)의 기본적인 사용법 #3
08. 인텔 아키텍처의 기본
09. 디버그에 필요한 스택 기초지식
10. 함수호출 시 매개변수 전달방법(x86_64)
11. 함수호출 시 매개변수 전달방법(i386)
12. 함수호출 시 매개변수 전달방법(C++)
13. 어셈블리어 학습법
14. 어셈블리어로부터 소스코드 위치 찾기
3장 커널 디버그 준비
15. Oops 메시지
16. minicom으로 시리얼 콘솔 접속하기
17. 네트워크를 경유한 커널 메시지 얻기
18. SysRq 키를 이용한 디버그 방법
19. diskdump로 커널 크래시 덤프 얻기
20. Kdump로 커널 크래시 덤프 얻기
21. crash 명령 사용법
22. IPMI watchdog timer로 freeze 시 크래시 덤프 얻기
23. NMI watchdog으로 freeze 시 크래시 덤프 얻기
24. 커널 특유의 어셈블리 명령 #1
25. 커널 특유의 어셈블리 명령 #2
4장 실전 애플리케이션 디버그
26. SIGSEGV에 의한 애플리케이션 비정상 종료
27. 백트레이스의 비정상 출력 ?
28. 배열 비정상 접근에 의한 메모리 내용 파괴
29. 감시점을 활용한 메모리 비정상 접근 감지
30. malloc, free에 의한 장애 발생
31. 애플리케이션의 스톨상태(데드락)
32. 애플리케이션의 스톨상태(무한루프)
5장 실전 디버그
33. 커널 패닉(NULL포인터 참조)
34. 커널 패닉(리스트 파괴) 35. 커널 패닉(경쟁조건)
36. 커널의 스톨상태(무한루프)
37. 커널의 스톨상태(스핀락 #1)
38. 커널의 스톨상태(스핀락 #2)
39. 커널의 스톨상태(세마포어)
40. 실시간 프로세스의 스톨 상태
41. 동작이 느려지는 문제
42. CPU 부하가 높아지는 문제
6장 고수준 디버그 테크닉
43. strace로 오류 원인에 대한 실마리 찾기
44. objdump의 편리한 옵션
45. Valgrind 사용법(기본편)
46. Valgrind 사용법(실전편)
47. kprobes로 커널 내부정보 얻기
48. jprobes로 커널 내부정보 얻기
49. kprobes로 커널 내부 임의의 위치의 정보 얻기
50. kprobes로 커널 내부 임의의 위치에서 변수명을 지정하는 정보 얻기
51. KAHO를 이용해 컴파일러에 의해 Optimized out된 변수값 얻기
52. systemtap으로 동작중인 커널 디버그 하기 #1
53. systemtap으로 동작중인 기커널 디버그 하
54. /proc/meminfo로 알 수 있는 것
55. /proc/[PID]/mem으로 프로세스의 메모리 내용을 빠르게 읽기
56. OOM Killer의 동작과 구조
57. fault injection
58. fault injection을 이용한 리눅스 커널의 잠재적 버그 발견
59. 리눅스 커널의 init 섹션
60. 성능 문제 해결
61. VMware Vprobe를 이용해 정보 얻기
62. Xen에서 메모리 덤프 얻기
63. GOT/PLT를 경유한 함수호출 구조 이해
64. initramfs 이미지 디버그
65. RT Watchdog을 이용해 실시간 프로세스의 스톨상태 탐지
66. 주위 x86머신의 64비트 모드 지원 여부 확인
부록. Debug Hacks 용어 정리
색인