목차 일부
각계 전문가들의 서평 ... ⅳ
추천의 글 ... ⅵ
저자의 말 ... ⅷ
역자 서문 ... ⅸ
감수의 글 ... xii
베타리더 한 마디 ... xiii
들어가며 ... xxii
1장 프로파일링 ... 2
스톱워치 ... 3
date ... 4
time ... 5
Clock ... 6
gettimeofday ... 11
G...
더보기
목차 전체
각계 전문가들의 서평 ... ⅳ
추천의 글 ... ⅵ
저자의 말 ... ⅷ
역자 서문 ... ⅸ
감수의 글 ... xii
베타리더 한 마디 ... xiii
들어가며 ... xxii
1장 프로파일링 ... 2
스톱워치 ... 3
date ... 4
time ... 5
Clock ... 6
gettimeofday ... 11
GNU gprof를 이용한 성능 튜닝 ... 14
gprof 사용에 필요한 gcc 옵션 ... 15
프로그램 sample1 빌드와 gprof 사용 ... 17
kprof ... 32
설치 ... 33
그래픽 기능 Graphviz 빌드 ... 33
요약 ... 36
프로파일링에 관련한 웹 자료 ... 36
2장 코드 커버리지 ... 37
코드 커버리지 분석이란? ... 38
gcov와 논리 오류 ... 39
코드 커버리지 유형 ... 40
gcov 사용에 필요한 gcc 옵션 ... 42
요약 ... 52
gcov와 관련한 웹 자료 ... 52
3장 GNU 디버거 ... 53
gdb 설치 ... 56
gdb 명령 ... 56
유용한 gdb 명령 ... 57
gdb로 디버깅할 프로그램 컴파일 방법 ... 60
전형적인 gdb 세션 ... 61
gdb 디버거 시작 ... 61
코어 파일로 디버깅하기 ... 64
프로그램 실행과 코어 덤프 얻기 ... 65
그래픽 gdb 인터페이스 ... 66
ddd ... 66
ddd 기능 ... 66
ddd 설치 ... 67
ddd로 프로그램 보는 방법 ... 68
인사이트 ... 70
인사이트 기능 ... 71
인사이트 설치 ... 71
디버깅 심볼과 실행 파일 크기 ... 77
디버깅 기술 ... 78
요약 ... 80
GNU 디버거에 관련한 웹 자료 ... 80
4장 메모리 관리 디버깅 ... 81
동적 메모리 함수 ... 82
MEMWATCH ... 84
YAMD ... 87
Electric Fence ... 95
Valgrind ... 99
Valgrind 설치 ... 100
메모리 손실 ... 102
캐시 프로파일링 ... 107
Valgrind 한계 ... 110
요약 ... 110
메모리 검사기에 관련한 웹 자료 ... 110
5장 시스템 정보: /proc 파일 시스템 ... 111
/proc이란? ... 112
관리자 관점에서 /proc 사용하기 ... 113
/proc 구조 ... 114
프로세스 정보 디렉토리 ... 114
요약 ... 149
/proc에 관련한 웹 자료 ... 150
6장 시스템 도구 ... 151
프로세스 ... 152
태스크 상태 ... 153
프로세스 디버깅 도구 ... 154
ps: 프로세스 상태 보고 ... 154
pgrep으로 입력 조건에 맞는 프로세스 ID 찾기 ... 169
pstree로 프로세스 트리 보기 ... 170
top으로 태스크 보기 ... 171
strace로 시스템 호출 추적하기 ... 172
마법 키 조합으로 역추적하기 ... 175
Isof로 열린 파일 살펴보기 ... 177
네크워크 디버깅 도구 ... 179
ifconfig으로 네트워크 인터페이스 구성하기 ... 179
arp로 시스템 APR 캐시 조작하기 ... 180
tcpdump로 네트워크 트래픽 덤프하기 ... 181
ethereal로 네트워크 트래픽 살펴보기 ... 182
netstat으로 네트워크 상태 보기 ... 183
요약 ... 186
시스템 도구에 관련한 웹 자료 ... 186
7장 시스템 오류 메시지 ... 187
커널 파일 ... 188
일반 배포판에서 커널 파일의 /boot 레이아웃 ... 188
웁스 분석 ... 191
커널 빌드 ... 193
ksymoops로 웁스 처리 ... 196
gdb로 jfs_mount 보기 ... 199
gcc -S 옵션으로 생성하는 어셈블리 코드 ... 200
GNU C로 생성한 어셈블러 결과 ... 200
커널 메일링 리스트 웁스 ... 201
3c59x 네트워크 드라이버 2.4.7ac11 웁스 ... 201
Linux-2.5.1-pre5 웁스 ... 205
perror로 시스템 또는 MySQL 오류 코드 확인 ... 208
요약 ... 210
웁스에 관련한 웹 자료 ... 210
8장 이벤트 로그 ... 211
syslogd ... 213
syslogd 주요 옵션 ... 213
원격 로그 ... 214
syslog.conf ... 214
syslogd 메시지 변경 ... 217
klogd ... 217
logger 명령 ... 218
충분한 디스크 공간 확보 ... 219
로그 파일 관리 ... 220
Syslog 메세지를 이용한 디버깅 ... 221
이벤트 로그 ... 225
이벤트 로그 인터페이스 ... 226
이벤트 로그의 장점 ... 226
로그 관리 ... 227
이벤트 로그 레코드 유형 ... 227
이벤트 로그 관리 ... 228
이벤트 로그 유틸리티 ... 228
원격 로그 ... 229
이벤트 통합 호스트 설정 ... 230
Syslog 메시지를 이벤트 로그로 전달 ... 231
evlog 패키지 ... 232
요약 ... 232
감사의 말 ... 232
이벤트 로그에 관련한 웹 자료 ... 232
9장 LTT ... 233
아키텍처 컴포넌트 태스크 ... 235
패키지와 설치 ... 236
커널 빌드 ... 241
LTT 사용자단계 도구 빌드 ... 243
자료 수집 ... 244
자료 기록 ... 245
자료 기록 중지 ... 246
추적 프로세스 분석 방법 ... 246
자료 해석 ... 249
tracevisualizer ... 249
하위 디렉토리를 묶는(tar) 추적 예제 ... 254
자료 검토용 텍스트 도구 ... 257
tracedcore filename ... 257
traceanalyze filename ... 257
tracedump filename ... 259
요약 ... 260
감사의 말 ... 260
LTT에 관련한 웹 자료 ... 260
10장 커널이 지원하는 프로파일러 oprofile ... 261
측정형 프로파일러 ... 262
샘플링형 프로파일러 ... 263
시스템 프로파일러 oprofile ... 263
커널 빌드 ... 264
oprofile을 위한 유틸리티 ... 268
일반적인 프로파일 단계 ... 269
단일 실행 파일의 프로파일 검토 ... 273
보고서 예제 ... 276
시스템 전반에 걸친 이진 이미지 요약 ... 276
시스템 전반에 걸친 심볼 요약(응용 프로그램 라이브러리별 정보 포함) ... 277
프로파일 자료 저장 ... 277
하드웨어 카운터 ... 278
캐시 실패 줄이기 ... 279
자료 구조체 채우기와 정렬 ... 280
압축 ... 281
루프 그룹화 ... 282
차단 ... 282
Prospect 프로파일러 ... 288
요약 ... 289
프로파일링에 관련한 웹 자료 ... 290
11장 UML ... 291
UML: 커널과 루트 파일 시스템 소개 ... 293
커널 패치와 빌드 ... 296
UML 커널 옵션 ... 297
커널 빌드 ... 303
루트 이미지 ... 304
파일 시스템 ... 305
스왑 파티션 ... 306
gdb 세션 설정 ... 306
UML 시작 ... 307
전형적인 gdb 세션 ... 307
gdb 스레드 분석 ... 309
참고 사항 ... 310
콘솔과 직렬 선 ... 310
UML 네트워킹 지원 ... 311
루트 이미지 ... 311
파일 시스템 추가 ... 311
시스템 끝내기 ... 312
UML 유틸리티 ... 313
요약 ... 313
감사의 말 ... 314
UML에 관련한 웹 자료 ... 314
12장 동적 프로브 ... 315
Dprobe의 독특한 특징 ... 317
프로브를 사용하기 위한 일반적인 단계 ... 318
Kprobe: 커널 동적 프로브 ... 319
커널 빌드 ... 320
Kprobe 인터페이스 ... 322
Kprobes 등록과 등록 해제 ... 322
sys_open을 사용한 프로브 예제 ... 325
기본 커널 모듈을 위한 makefile ... 327
시스템에서 활동 중인 Kprobe찾기 ... 328
sys_open에서 오프셋 찾기 ... 329
점퍼 프로브 ... 330
Kprobe 활용 ... 331
성공적인 Dprobe 적용 예 ... 331
요약 ... 332
감사의 말 ... 332
동적 프로브와 관련한 웹 자료 ... 332
13장 커널 디버거 ... 333
kgdb ... 336
kgdb 커널 패치 ... 336
널 모뎀 직렬 케이블 설정 점검 ... 341
전형적인 gdb 세션 ... 344
kgdb를 사용해서 멈추고 커널 소스 확인하기 ... 344
gdb 스레드 분석 ... 347
kdb ... 348
kdb 커널 패치 ... 349
커널 빌드 ... 351
kdb 활성화 ... 352
kdb 명령 ... 354
kdb 디버그 세션 ... 355
요약 ... 370
감사의 말 ... 370
kgdb와 kdb와 관련한 웹 자료 ... 370
14장 충돌 덤프 ... 371
커널 환경 설정 ... 374
충돌 덤프 커널 옵션 ... 374
커널 패치와 빌드 ... 375
커널 빌드 ... 377
일반적인 충돌 덤프 단계 ... 379
LKCD 명령어 ... 384
시스템 패닉과 충돌 덤프 확보 ... 386
Netdump: 클라이언트-서버 방식으로 동작하는 네트워크 충돌 덤프 기능 ... 390
서버 ... 391
클라이언트 ... 391
diskdump: 충돌 덤프 기능 ... 392
diskdump를 환경 설정하는 일반적인 단계 ... 393
mcore 충돌 덤프 살펴보기 ... 394
요약 ... 411
감사의 말 ... 411
충돌 덤프에 관련한 웹 자료 ... 411
옮긴이 주 ... 412
찾아보기 ... 420
더보기 닫기