목차
각계 전문가들의 서평 ... ⅳ
추천의 글 ... ⅵ
저자의 말 ... ⅷ
역자 서문 ... ⅸ
감수의 글 ... 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
닫기