실전 윈도우 디버깅 [애플리케이션에서 시스템 프로그래밍까지 윈도우 프로그래밍 오류 분석과 툴 활용 기법]
- 원서명Advanced Windows Debugging (ISBN 9780321374462)
- 지은이Mario Hewardt, Daniel Pravat
- 옮긴이김점갑
- ISBN : 9788960770614
- 46,000원
- 2008년 10월 07일 펴냄 (절판)
- 페이퍼백 | 840쪽 | 188*250mm
- 시리즈 : 윈도우 시스템 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
윈도우 애플리케이션부터 시스템 프로그래밍까지 메모리(스택, 힙) 손상과 자원 누수, 크래시 분석, 보안 문제, 서버/클라이언트, 동기화 문제 등의 근본 원인을 파악하는 기법과 문제 탐지에 사용할 수 있는 강력한 디버깅 툴의 활용법과 전용 디버깅 명령 작성법을 소개한다. 또한 회사에 디버깅이 가능한 시스템(소스 서버와 심볼 서버)을 구축하는 법과 윈도우 오류 보고와 기업 오류 보고 시스템을 구축해 자동으로 오류를 전달받고 패치하는 메커니즘까지 다루는 실전 윈도우 디버깅에 대한 체계적이고 심도 있는 완벽 가이드다.
[ 소개 ]
■ NTSD와 CDB, WinDbg, KD, ADPlus 등 가장 강력한 최신 윈도우 디버깅 툴
■ 디버깅을 고려하지 않고 설계, 작성한 코드를 디버깅하는 방법
■ 디버거의 이면과 효과적인 심볼/소스 관리법
■ 스택이나 힙과 관련된 복잡한 메모리 손상 디버깅 방법
■ 복잡한 보안 문제 해결 노하우
■ 신분 추적과 RPC 디버거 확장, Ethereal를 통한 IPC 추적 등 여러 프로세스에 걸친 문제 디버깅
■ 메모리와 핸들 누수 같은 리소스 누수 수정
■ 일반적인 스레드 동기화 문제 디버깅
■ 커스텀 디버거 익스텐션을 작성해야 할 시점과 방법 이해
■ 크래시 덤프를 사용한 ‘포스트모템 디버깅’ 수행과 윈도우 오류 보고 시스템과의 통합
■ DebugDiag 툴과 Analyze 디버거 명령을 사용한 디버깅 작업 자동화
윈도우의 개발자에게 있어서 디버깅보다 더 난해하며 잔인한 작업은 거의 없다. 신뢰할 만하고 실제적인 정보가 항상 부족했다. 이제 15년 이상의 경력을 가진 마이크로소프트 시스템 개발자인 두 저자가 윈도우 디버깅에 대한 철저한 실전 지침을 제공한다.
저자들은 애플리케이션 전체 수명에 걸친 디버깅을 다루고 마이크로소프트 디버거와 서드파티 툴을 사용하는 법을 소개한다.
실제 해결책을 신속히 찾는 데 도움을 주고자 이 책은 실질적인 디버깅 시나리오로 구성돼 있으며, 전문 개발자가 직면하는 복잡한 디버깅 역경을 조명하려고 세부적인 코드 예제를 제공한다. 핵심 윈도우 운영체제 개념에서부터 보안과 윈도우 비스타, 64비트 디버깅에 이르기까지 부각되는 주제를 적절한 수위로 심도 있게 다룬다.
[ 이 책의 대상 ]
소프트웨어 개발자는 물론이고 윈도우 깊숙한 내부에서 실제 어떤 일이 일어나는지 궁금한 사람 누구에게나 도움이 될 내용을 다룬다. 기술적으로 고급 시스템 엔지니어만을 위한 책이라고 생각할 수도 있지만 실상은 그렇지 않다. 이 책은 개발자들 사이에 떠도는 선입견을 제거하는 것이 가장 큰 목표다. 여러 이유로 인해 많은 소프트웨어 엔지니어는 자신들이 작업하고 있는 소프트웨어와 운영체제 간에 일종의 마법 같은 관계가 있다고 믿는다. RPC/COM이나 윈도우 힙 관리자 같은 운영체제 컴포넌트를 분석해야 하는 문제가 발생할 때 개발자가 품은 선입견은 문제 해결에 큰 도움이 될 수 있는 정보를 얻기 위한 윈도우 내부 조사를 방해한다. 이 책을 효과적으로 활용하려면 선입견을 없애는 법부터 배우고 이면에 마법이 존재하지 않는다는 마음가짐을 지녀야 한다. 핵심 윈도우 컴포넌트를 독자 제품의 확장으로 간주해야 하지 독립적이고 마법적인 계층으로 여겨서는 안 된다. 윈도우 컴포넌트도 다른 누군가가 작성한 단지 코드일 뿐이다. 독자가 이 경지에 올라섰다면 가히 윈도우 디버깅에 정통할 첫 단계를 내디딘 것이다.
[ 이 책의 구성 ]
1부. 개요
1부에서는 기초 내용을 다루며 툴과 디버거의 개요를 통해 디버거의 기본적인 사항을 알려준다. 윈도우 디버거에 이미 익숙하더라도 귀중한 많은 정보가 들어 있으므로 대강이라도 살펴보기를 권장한다.
2부. 디버깅 응용
윈도우 디버거를 사용하여 일반적인 프로그래밍 실수를 분석할 기회를 제공한다. 각 장에서는 메모리 손상과 메모리 누수, RPC/COM과 같은 특정 부류의 문제에 중점을 둔다. 각 장은 윈도우 컴포넌트와 관련 있는 일반적인 프로그래밍 실수를 예시하는 몇 가지 시나리오에 수반되는 해당 윈도우 컴포넌트를 간단히 살펴보고 시작한다.
3부. 고급 주제
3부는 포스트모템 디버깅과 64비트 디버깅, 윈도우 비스타의 기본적인 사항 등과 같은 주제를 논하는 장으로 구성해 전반적으로 고급 내용을 다룬다. 이들 장의 목표는 각 영역에 대해 철저한 내용을 제공하는 것이 아니라 설명한 주제를 독자가 시작할 수 있는 정도의 기본적인 사항을 제공하는 것이다.
[ 추천의 글 ]
소프트웨어에는 “단순화”라는 한 가지 목표가 있다. 최적화하고 자동화할 수 있는 절차와 좀더 효율적으로 저장하거나 처리할 수 있는 데이터가 존재한다면 소프트웨어는 그 일을 이행하기 위해 개입한다. 단순화를 한다고 해서 원래대로 복원(undo)하는 데 복잡성을 야기하지 말아야 한다. 따라서 최소의 사용자 관여로써 설치되어야 하며 계속해서 여타 애플리케이션과 여러 곳의 데이터와 서비스를 통합하고 소프트웨어와 하드웨어 환경 변화에 탄력적으로 대응해야 한다. 대부분의 경우 소프트웨어는 신비하게 그냥 동작한다.
하지만 엔드 유저와 관리자의 경험을 단순화하려고 노력하는 동안에 소프트웨어는 더욱 더 복잡해졌다. 소프트웨어가 다루는 데이터 양이든지 소프트웨어가 통신하는 애플리케이션 수, 소프트웨어의 내부 병렬화 정도 또는 소프트가 자신이 실행되는 스택에서 직간접으로 임포트하는 API이든 간에, 많은 소프트웨어의 명료한 단순성은 미묘한 타이밍 문제와 의존성, 소프트웨어 계층 간 또는 종종 상이한 애플리케이션과 심지에 컴퓨터에 걸쳐 있는 가정을 숨겨준다.
여러분이 소프트웨어를 개발하고 테스트, 지원하는 방법을 배우기 위해 이 책을 읽고 있다면, 근본 원인을 조사하고 수정을 책임지고 있는 변경이 잦은 소프트웨어의 많은 부분에서 이미 문제에 직면하고 있을 것이다. 이런 시도에서 성공하려면 무엇보다도 최대한 신속하고 효율적으로 문제의 원인을 파악해야 한다. 그러기 위해선 무엇을 그리고 어디를, 어떻게 살펴볼지를 알아야 한다. 결국, 툴을 자유 자재로 사용하고, 특정 부류의 실패에 대해 어떤 툴이 가장 효과적인지, 그리고 문제의 원인을 신속히 좁히기 위해 각 툴의 특성과 기능을 적용하는 법을 알아야 한다.
대부분의 경우 윈도우 애플리케이션의 문제를 조사하고 디버깅하는 법을 배우는 것이 단지 선택사항이었지만 애플리케이션 실패를 디버깅할 때에 애매한 툴이나 시나리오 특정적인 디버거 명령에 따라 즉시 문제를 이해할 수도 있고 문제를 파악하는 데 여러 시간 또는 심지어 성공하지도 못하면서 며칠을 허비할 수도 있다. 이것이 바로 이와 같은 책이 그 가치를 발휘하는 이유다.
이 책에서는 통합된 지식과 수년 간에 걸친 저자와 마이크로소프트 고객 지원 서비스, 윈도우 제품 및 툴 개발 팀의 경험을 독자에게 모두 공개했다. 윈도우 힙 관리자가 버퍼 오버플로우 행위에 영향을 주는지 또는 DCOM 행(hang)의 원인 조사에 어떤 디버거 익스텐션 명령을 사용해야 하는가와 같은 주제를 배우기에 가장 적절한 책이라 하겠다. 직접 작성한 윈도우 애플리케이션과 디바이스 드라이버를 10년 넘게 디버깅해왔지만, 이 책에서 내가 이미 사용하고 있는 것은 물론이고, 아직 접해보지 못한 새로운 기법과 툴, 디버거 명령을 배웠다.
우리 모두는 수입과 명성을 디버깅 방법에서 얻는 것이 아니라 얼마나 신속하고 정확하게 디버깅을 하는가에 따라 달려있다. 독자가 윈도우 애플리케이션을 수 년 동안 해왔든지 막 시작했든지 간에 두 저자는 독자의 버그 사냥 여정을 잘 준비해 줄 것이다. 즐거운 여행이 되기를 바란다.
[ 소개 ]
■ NTSD와 CDB, WinDbg, KD, ADPlus 등 가장 강력한 최신 윈도우 디버깅 툴
■ 디버깅을 고려하지 않고 설계, 작성한 코드를 디버깅하는 방법
■ 디버거의 이면과 효과적인 심볼/소스 관리법
■ 스택이나 힙과 관련된 복잡한 메모리 손상 디버깅 방법
■ 복잡한 보안 문제 해결 노하우
■ 신분 추적과 RPC 디버거 확장, Ethereal를 통한 IPC 추적 등 여러 프로세스에 걸친 문제 디버깅
■ 메모리와 핸들 누수 같은 리소스 누수 수정
■ 일반적인 스레드 동기화 문제 디버깅
■ 커스텀 디버거 익스텐션을 작성해야 할 시점과 방법 이해
■ 크래시 덤프를 사용한 ‘포스트모템 디버깅’ 수행과 윈도우 오류 보고 시스템과의 통합
■ DebugDiag 툴과 Analyze 디버거 명령을 사용한 디버깅 작업 자동화
윈도우의 개발자에게 있어서 디버깅보다 더 난해하며 잔인한 작업은 거의 없다. 신뢰할 만하고 실제적인 정보가 항상 부족했다. 이제 15년 이상의 경력을 가진 마이크로소프트 시스템 개발자인 두 저자가 윈도우 디버깅에 대한 철저한 실전 지침을 제공한다.
저자들은 애플리케이션 전체 수명에 걸친 디버깅을 다루고 마이크로소프트 디버거와 서드파티 툴을 사용하는 법을 소개한다.
실제 해결책을 신속히 찾는 데 도움을 주고자 이 책은 실질적인 디버깅 시나리오로 구성돼 있으며, 전문 개발자가 직면하는 복잡한 디버깅 역경을 조명하려고 세부적인 코드 예제를 제공한다. 핵심 윈도우 운영체제 개념에서부터 보안과 윈도우 비스타, 64비트 디버깅에 이르기까지 부각되는 주제를 적절한 수위로 심도 있게 다룬다.
[ 이 책의 대상 ]
소프트웨어 개발자는 물론이고 윈도우 깊숙한 내부에서 실제 어떤 일이 일어나는지 궁금한 사람 누구에게나 도움이 될 내용을 다룬다. 기술적으로 고급 시스템 엔지니어만을 위한 책이라고 생각할 수도 있지만 실상은 그렇지 않다. 이 책은 개발자들 사이에 떠도는 선입견을 제거하는 것이 가장 큰 목표다. 여러 이유로 인해 많은 소프트웨어 엔지니어는 자신들이 작업하고 있는 소프트웨어와 운영체제 간에 일종의 마법 같은 관계가 있다고 믿는다. RPC/COM이나 윈도우 힙 관리자 같은 운영체제 컴포넌트를 분석해야 하는 문제가 발생할 때 개발자가 품은 선입견은 문제 해결에 큰 도움이 될 수 있는 정보를 얻기 위한 윈도우 내부 조사를 방해한다. 이 책을 효과적으로 활용하려면 선입견을 없애는 법부터 배우고 이면에 마법이 존재하지 않는다는 마음가짐을 지녀야 한다. 핵심 윈도우 컴포넌트를 독자 제품의 확장으로 간주해야 하지 독립적이고 마법적인 계층으로 여겨서는 안 된다. 윈도우 컴포넌트도 다른 누군가가 작성한 단지 코드일 뿐이다. 독자가 이 경지에 올라섰다면 가히 윈도우 디버깅에 정통할 첫 단계를 내디딘 것이다.
[ 이 책의 구성 ]
1부. 개요
1부에서는 기초 내용을 다루며 툴과 디버거의 개요를 통해 디버거의 기본적인 사항을 알려준다. 윈도우 디버거에 이미 익숙하더라도 귀중한 많은 정보가 들어 있으므로 대강이라도 살펴보기를 권장한다.
2부. 디버깅 응용
윈도우 디버거를 사용하여 일반적인 프로그래밍 실수를 분석할 기회를 제공한다. 각 장에서는 메모리 손상과 메모리 누수, RPC/COM과 같은 특정 부류의 문제에 중점을 둔다. 각 장은 윈도우 컴포넌트와 관련 있는 일반적인 프로그래밍 실수를 예시하는 몇 가지 시나리오에 수반되는 해당 윈도우 컴포넌트를 간단히 살펴보고 시작한다.
3부. 고급 주제
3부는 포스트모템 디버깅과 64비트 디버깅, 윈도우 비스타의 기본적인 사항 등과 같은 주제를 논하는 장으로 구성해 전반적으로 고급 내용을 다룬다. 이들 장의 목표는 각 영역에 대해 철저한 내용을 제공하는 것이 아니라 설명한 주제를 독자가 시작할 수 있는 정도의 기본적인 사항을 제공하는 것이다.
[ 추천의 글 ]
소프트웨어에는 “단순화”라는 한 가지 목표가 있다. 최적화하고 자동화할 수 있는 절차와 좀더 효율적으로 저장하거나 처리할 수 있는 데이터가 존재한다면 소프트웨어는 그 일을 이행하기 위해 개입한다. 단순화를 한다고 해서 원래대로 복원(undo)하는 데 복잡성을 야기하지 말아야 한다. 따라서 최소의 사용자 관여로써 설치되어야 하며 계속해서 여타 애플리케이션과 여러 곳의 데이터와 서비스를 통합하고 소프트웨어와 하드웨어 환경 변화에 탄력적으로 대응해야 한다. 대부분의 경우 소프트웨어는 신비하게 그냥 동작한다.
하지만 엔드 유저와 관리자의 경험을 단순화하려고 노력하는 동안에 소프트웨어는 더욱 더 복잡해졌다. 소프트웨어가 다루는 데이터 양이든지 소프트웨어가 통신하는 애플리케이션 수, 소프트웨어의 내부 병렬화 정도 또는 소프트가 자신이 실행되는 스택에서 직간접으로 임포트하는 API이든 간에, 많은 소프트웨어의 명료한 단순성은 미묘한 타이밍 문제와 의존성, 소프트웨어 계층 간 또는 종종 상이한 애플리케이션과 심지에 컴퓨터에 걸쳐 있는 가정을 숨겨준다.
여러분이 소프트웨어를 개발하고 테스트, 지원하는 방법을 배우기 위해 이 책을 읽고 있다면, 근본 원인을 조사하고 수정을 책임지고 있는 변경이 잦은 소프트웨어의 많은 부분에서 이미 문제에 직면하고 있을 것이다. 이런 시도에서 성공하려면 무엇보다도 최대한 신속하고 효율적으로 문제의 원인을 파악해야 한다. 그러기 위해선 무엇을 그리고 어디를, 어떻게 살펴볼지를 알아야 한다. 결국, 툴을 자유 자재로 사용하고, 특정 부류의 실패에 대해 어떤 툴이 가장 효과적인지, 그리고 문제의 원인을 신속히 좁히기 위해 각 툴의 특성과 기능을 적용하는 법을 알아야 한다.
대부분의 경우 윈도우 애플리케이션의 문제를 조사하고 디버깅하는 법을 배우는 것이 단지 선택사항이었지만 애플리케이션 실패를 디버깅할 때에 애매한 툴이나 시나리오 특정적인 디버거 명령에 따라 즉시 문제를 이해할 수도 있고 문제를 파악하는 데 여러 시간 또는 심지어 성공하지도 못하면서 며칠을 허비할 수도 있다. 이것이 바로 이와 같은 책이 그 가치를 발휘하는 이유다.
이 책에서는 통합된 지식과 수년 간에 걸친 저자와 마이크로소프트 고객 지원 서비스, 윈도우 제품 및 툴 개발 팀의 경험을 독자에게 모두 공개했다. 윈도우 힙 관리자가 버퍼 오버플로우 행위에 영향을 주는지 또는 DCOM 행(hang)의 원인 조사에 어떤 디버거 익스텐션 명령을 사용해야 하는가와 같은 주제를 배우기에 가장 적절한 책이라 하겠다. 직접 작성한 윈도우 애플리케이션과 디바이스 드라이버를 10년 넘게 디버깅해왔지만, 이 책에서 내가 이미 사용하고 있는 것은 물론이고, 아직 접해보지 못한 새로운 기법과 툴, 디버거 명령을 배웠다.
우리 모두는 수입과 명성을 디버깅 방법에서 얻는 것이 아니라 얼마나 신속하고 정확하게 디버깅을 하는가에 따라 달려있다. 독자가 윈도우 애플리케이션을 수 년 동안 해왔든지 막 시작했든지 간에 두 저자는 독자의 버그 사냥 여정을 잘 준비해 줄 것이다. 즐거운 여행이 되기를 바란다.
Mark Russinovich
기술 펠로우, 플랫폼 & 서비스 부서
마이크로소프트
기술 펠로우, 플랫폼 & 서비스 부서
마이크로소프트
목차
목차
- 1부 개요 1
- 01장 툴 소개 3
- 누수 진단 툴 4
- 윈도우 디버깅 툴 7
- UMDH 9
- 마이크로소프트 애플리케이션 베리파이어 9
- 전역 플래그 16
- 프로세스 익스플로러 22
- 윈도우 드라이버 킷 24
- Wireshark 27
- DebugDiag 27
- 정리 28
- 02장 디버거 소개 29
- 디버거 기본 30
- 기본적인 디버거 작업 45
- 원격 디버깅 109
- 디버깅 시나리오 118
- 정리 121
- 03장 디버거 해부 123
- 유저 모드 디버거의 내부 124
- 타겟 제어 168
- 정리 178
- 04장 심볼과 소스 파일의 관리 179
- 디버깅에 필요한 심볼 관리 180
- 디버깅 용도의 소스 파일 관리 188
- 정리 195
- 2부 디버깅 응용 197
- 05장 메모리 손상 1 - 스택 199
- 메모리 손상 탐지 201
- 스택 손상 209
- 정리 258
- 06장 메모리 손상 2 - 힙 259
- 힙이란 259
- 힙 손상 281
- 정리 315
- 07장 보안 317
- 윈도우 보안 개요 318
- 보안 정보의 출처 329
- 보안 검사의 방법 334
- 클라이언트-서버 애플리케이션에서 신분 전파 335
- 시스템 경계에서의 보안 검사 339
- 보안 실패 조사 340
- 정리 378
- 08장 프로세스 간의 통신 379
- 통신 메커니즘 380
- 로컬 통신 문제 해결 382
- 원격 통신 문제 해결 396
- 부가적인 기술 정보 422
- 정리 426
- 09장 리소스 누수 427
- 리소스란 427
- 하이레벨 절차 428
- 리소스 누수의 재현성 433
- 핸들 누수 434
- 메모리 누수 459
- 정리 492
- 10장 동기화 493
- 하이레벨 절차 504
- 동기화 시나리오 509
- 정리 549
- 3부 고급 주제 551
- 11장 커스텀 디버거 익스텐션 작성 553
- 디버거 익스텐션 소개 553
- 디버거 익스텐션 예제 556
- 정리 594
- 12장 64비트 디버깅 595
- 마이크로소프트 64비트 시스템 595
- 윈도우 x64의 변경사항 603
- 정리 630
- 13장 포스트모템 디버깅 631
- 덤프 파일 기본 632
- 덤프 파일의 사용 645
- 윈도우 오류 보고 653
- 기업 오류 보고 683
- 정리 690
- 14장 강력한 툴 691
- 디버그 진단 툴 691
- !analyze 익스텐션 명령 699
- 정리 708
- 15장 윈도우 비스타 기초 709
- 1장: 툴 소개 710
- 2장: 디버거 소개 712
- 6장: 메모리 손상 - 힙 부분 717
- 7장: 보안 723
- 8장: 프로세스 간의 통신 736
- 9장: 리소스 누수 737
- 10장: 동기화 737
- 11장: 커스텀 디버거 익스텐션 작성 741
- 13장: 포스트모템 디버깅 741
- 정리 745
- 부록 A 애플리케이션 베리파이어 테스트 설정 747
- 예외 747
- 핸들 747
- 힙 748
- 락 757
- 메모리 759
- 스레드 풀 762
- TLS 763
- 파일 경로 764
- HighVersionLie 765
- 인터랙티브 서비스 767
- KernelModeDriverInstall 768
- 자원 부족 시뮬레이션 769
- LuaPriv 770
- DangerousAPIs 774
- DirtyStacks 775
- TimeRollOver 775
관련 블로그 글
디버깅 삽질은 이제 그만! 『실전 윈도우 디버깅』
『실전 윈도우 디버깅』
애플리케이션에서 시스템 프로그래밍까지
윈도우 프로그래밍 오류 분석과 툴 활용 기법
Mario Hewardt, Daniel Pravat 지음 | 김점갑 옮김
840쪽 | 46,000원 | 2008년 10월 7일 출간 예정
애플리케이션에서 시스템 프로그래밍까지
윈도우 프로그래밍 오류 분석과 툴 활용 기법
Mario Hewardt, Daniel Pravat 지음 | 김점갑 옮김
840쪽 | 46,000원 | 2008년 10월 7일 출간 예정
정확하고 오류 없는 프로그램을 짜는 건 모든 개발자의 로망 아닐까요. 하지만 흠없는 인간 없듯이 세상 일이 모두 그러할진대, 버그 없는 완벽한 프로그램이란 참으로 요원한 이상이며 벌레를 잡는 일조차도 수월치 않음이 개발자의 현실일 것입니다.
윈도우 애플리케이션부터 시스템 프로그래밍까지 메모리(스택, 힙) 손상과 자원 누수, 크래시 분석, 보안 문제, 서버/클라이언트, 동기화 문제 등의 근본 원인을 파악하는 기법과 문제 탐지에 사용할 수 있는 강력한 디버깅 툴의 활용법과 전용 디버깅 명령 작성법을 소개한다.저자 서문에도 나오지만 이 책은 그야말로 저자들의 오랜 삽질과 경험 끝에 자신들이 겪은 그 수많은 시행착오를 다른 이들은 절대 겪지 않게 되길 바라는 충심에서 태어난 책입니다. 어느 날 저자들은 스트레스 테스트 중에 발생하는 크래시 때문에 골머리를 앓고 있었습니다. 그러던 중 누군가가 알려준 gflags 툴을 알게 됐고, 문제 해결은 멀지 않아 보였습니다. 하지만 툴을 배우고 사용법을 익히는 과정은 길고도 험난했습니다. 맛있는 음식을 만들 수 있는 끝내주는 재료를 눈앞에 두고도 복잡다난한 요리도구의 사용법을 몰라 그림의 떡처럼 앉아있는 것이나 다름 없었던 게죠.
또한 회사에 디버깅이 가능한 시스템(소스 서버와 심볼 서버)을 구축하는 법과 윈도우 오류 보고와 기업 오류 보고 시스템을 구축해 자동으로 오류를 전달받고 패치하는 메커니즘까지 다루는 실전 윈도우 디버깅에 대한 체계적이고 심도 있는 완벽 가이드다.
세상에는 정말 수많은 디버깅 툴이 있습니다. 이거 하나면 버그들은 가볍게 잡아내어 오류 없는 코드를 만들 수 있다고 하지만, 그럼 뭐하냐구요. 제대로 쓸 수 있는 방법을 모르는데. 이 책에서는 NTSD와 CDB, WinDbg, KD, ADPlus 등 강력한 최신 윈도우 디버깅 툴을 제대로 활용하는 방법을 알려줍니다. 아울러 각 툴의 익스텐션(extension) 명령을 적절하게 활용해 버그를 쉽고 빠르게 찾아내서 수정할 수 있는 방법을 알려주고 있습니다.
기존 디버깅 책에서 가장 취약했던 부분은 디버깅 방법을 알려주면서 그냥 눈으로만 확인할 수 있다거나 이론만을 나열함으로써 실제 오류 사례와 연관시켜 이해하기가 힘들었다는 점이었을 것입니다. 이 책에서는 (메모리, 스택, 힙 손상 등) 각종 메모리 관련 버그, 보안이나 프로세스, 통신 등에서 발생할 수 있는 각종 버그, 윈도우 프로그램에서 흔히 접할 수 있는 애플리케이션 행(hang) 등 정말 윈도우 프로그래머라면 늘상 접하는 수많은 오류 상황을 저자들이 사례로 만들어 소스코드를 보여줌으로써, 독자들이 자신의 심볼서버, 소스서버에서 돌려 실제로 직접 확인해볼 수 있게 했습니다.
또한 저자들이 공개한 웹사이트(http://www.advancedwindowsdebugging.com)
에서 모든 샘플 코드와 바이너리를 올려놓았으며, 독자들이 디버깅 세션을 시도할 때 해당 바이너리에 대한 심볼들을 다운로드하지 말고 디버거 심볼 경로를 이 책의 심볼 서버로 지정하면 원격 심볼로써 디버깅할 수 있게 했습니다.
(몇몇 출판사가 번역권을 탐냈다던) 이 좋은 (그리고 매우 두꺼운 -0-) 책을 훌륭히 번역해주시고 많은 조언 아끼지 않으신 안철수 연구소의 김점갑 팀장님께 감사드립니다. 아울러 저희를 도와 좋은 책 열심히 만들어주시는 박창기 실장님께도요.
『실전 윈도우 디버깅』은 지금 YES24, 교보문고, 강컴, 인터파크, 알라딘 등에서 예약판매중입니다. 다음 주 화요일, 10월 7일이면 곧 출간되오니 윈도우 디버깅에 관심 있는 분들은 어서 서둘러보시죠. 모 서점에서는 벌써부터 뜨거운 반응이 저희에게도 전해오고 있다고 하니 모쪼록 독자분들의 좋은 평을 받았으면 좋겠습니다. :)
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
도서 오류 신고
정오표
1쇄 오류/오탈자
[ p519 아래에서 6행 ]
스레드가 그냥 종료할 것이다. 하지만 절대로 그렇지 않다.
→ 스레드가 그냥 종료할 것이다. 이 경우 서드-파티 코드를 호출하기 전에 획득한 임계영역을 벗어났는가? 하지만 절대로 그렇지 않다.
[ p519 아래에서 6행 ]
스레드가 그냥 종료할 것이다. 하지만 절대로 그렇지 않다.
→ 스레드가 그냥 종료할 것이다. 이 경우 서드-파티 코드를 호출하기 전에 획득한 임계영역을 벗어났는가? 하지만 절대로 그렇지 않다.