책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > .NET > .NET 일반
· ISBN : 9788956744285
· 쪽수 : 623쪽
책 소개
목차
용어대역표
감사의 글
저자 소개
서문
누가 이 책을 읽어야 하는가?
이 책을 읽는 방법과 세 번째 판에 추가된 내용은 무엇인가?
예제 코드
이 책의 구조
시스템 요구 사항
샘플 파일에는 무엇이 제공되는가?
필독! 최소 권한으로 실행하라
피드백
이 책의 지원
Part 1 디버깅 소개
Chapter 1 버그 : 원인과 해결방안
버그와 디버깅
버그란 무엇인가?
절차적인 문제와 해결책
디버깅 계획 수립
디버깅 선행 조건
스킬셋(Skill Set)
스킬셋 학습하기
디버깅 절차
1단계 : 버그를 재현한다
2단계 : 버그를 기술한다
3단계 : 항상 버그를 자신이 만든 것이라고 가정한다
4단계 : 분할 통치한다
5단계 : 창조적으로 생각한다
6단계 : 도구를 활용한다
7단계 : 심도있는 디버깅을 한다
8단계 : 버그가 수정되었는지 검증한다
9단계 : 배우고 공유한다
마지막 디버깅 절차 비법
요약
Chapter 2 디버깅 준비하기
프로젝트를 폐기 처분할 때까지 변경 사항을 추적한다
버전 제어 시스템
버그 추적 시스템
자신에게 맞는 시스템 선택하기
디버깅 시스템을 구축하기 위한 일정 수립
모든 빌드를 디버깅 심볼을 갖도록 빌드하기
경고를 오류로 처리하라
어셈블리를 어디에 로드하는지 알아야 한다
코드 분석 활성화하여 빌드하기
빈번한 빌드와 스모크 테스트는 필수
빈번한 빌드
스모크 테스트
설치 프로그램 곧바로 빌드하기
QA는 디버그 빌드로 테스트해야 한다
심볼 저장소 구성하기
소스 서버 구성하기
소스 서버란?
인덱싱 기초
소스 서버를 활용하여 디버깅하기
기능도 좋아지고 사용하기도 쉬워진 소스 서버 인덱싱
요약
Chapter 3 코드 작성 시 디버깅하기
어설트, 어설트, 어설트, 어설트
어떻게 그리고 무엇을 어설트할 것인가?
.NET에서의 어설션
SUPERASSERT.NET
추적, 추적, 추적, 추적
기본적인 추적
고급 추적 기법
무조건 주석을 달아라
요약
Chapter 4 자주 묻는 .NET 디버깅 질문들
프로세스와 내부 구조에 관련된 질문들
왜 관리자 권한을 피해야 하나요?
디버깅을 잘할 수 있는 비밀을 말해 주세요
어떤 개발 방법론을 사용해야 할까요?
코드 리뷰를 꼭 해야 하나요?
팀 밖으로 배포한 빌드를 다시 만드는데 어려움이 있네요.
어떻게 해야 하나요?
관리되는 코드를 디버깅할 때 유용하게 사용할 수 있는 C# 컴파일러 옵션들에는 어떤 것들이 있나요?
어떤 CPU에서 빌드해야 하나요?
컴파일러와 다른 개발 도구들을 언제부터 업그레이드해서는 안 되나요?
처음으로 프로그램을 디버깅할 때 소스 서버의 속도를 어떻게 하면 높일 수 있나요?
ConditionalAttribute는 언제 사용합니까?
조건문에서 상수 값을 왜 항상 왼쪽에 두나요?
.NET에서 디버그와 릴리즈 바이너리는 어떤 점이 다른가요?
Visual Studio 버그
어떤 프로젝트를 로드했더니 Visual Studio가 죽어버리고, F5를 눌렀을 때 디버거가 전혀 작동하지 않는 경우가 있습니다. 디버거가 작동해도 중단점이 활성화되지 않는 경우도 있습니다. 왜 그런거죠?
언젠가부터 특정 키가 편집 창에서 먹히질 않습니다. Visual Studio를 다시 설치했는데도 불구하고 해결을 하지 못했습니다. 어떻게 해야 하나요?
디버그 메뉴(또는 그 밖의 다른 UI 부분)에 문제가 발생했습니다
디버깅을 고려한 설계
예외 처리를 어떻게 구현해야 하나요?
처리되지 않은 예외를 기록하기 위해서는 어떻게 해야 하나요?
종결자는 언제 사용해야 하나요?
디버거 관련 질문 사항
개발 PC가 아니라 제품 PC에서 디버거를 사용해야 합니다. 이럴 경우 추가적으로 Visual Studio를 구매해야 하나요?
VSHOST가 뭔가요?
Visual Studio를 사용해 SQL 저장 프로시저를 디버깅할 수 있나요?
Visual Studio를 사용해 스크립트 디버깅은 어떻게 하나요?
코드 접근 권한(CAS : Code Access Security)이 다른 경우에 어떻게 디버깅할 수 있나요?
Windows Forms 응용 프로그램을 디버깅할 때 너무 오랫동안 멈춰있으면 왜 간혹 컨텍스트 전환 교착 예외가 발생하는 건가요? 그리고 관리되는 Debugging Assistants가 뭐죠?
디버깅 시나리오 관련 질문들
전역 어셈블리 캐시에 있는 어셈블리는 어떻게 디버깅하나요?
.NET으로 작성된 Windows 서비스의 시작 코드를 디버깅하고 싶습니다. 어떻게 해야 하나요?
사장님이 자꾸 이메일을 보내서 업무 마비 상태입니다. 어떻게 하면 이 끔찍한 PHB 이메일을 조금이라고 막을 수 있을까요?
교착 상태를 디버깅하기 위해서 어떤 방법을 사용하나요?
디자인-타임 어셈블리와 애드-인은 어떻게 디버깅할까?
어셈블리 로딩에서 문제가 발생하면 어떻게 디버깅하세요?
처리되지 않은 예외에서 소스와 줄 정보를 어떻게 하면 항상 얻을 수 있을까요?
어떤 도구들을 사용하세요?
SysInternals에서 제공하는 모든 도구
Lutz Roeder의 Reflector
Sells Brothers의 RegexDesigner.NET
WiX(Windows Installer XML)
그 밖의 도구들
요약
Part 2 파워 디버깅
Chapter 5 Visual Studio를 이용한 고급 디버거 사용법
고급 중단점과 사용법
중단점에 관한 여러 가지 팁
함수에 중단점 빠르게 설정하기
위치 중단점 상세 변경
조사식 창
형식 지정자와 속성 평가
개체 ID 만들기
DataTips
타입 확장하기
디버거 시각화 도우미
[조사식] 창 부류에서 메서드 호출하기
고급 팁
다음 문 설정 명령
혼합 모드 디버깅
예외 디버깅
다중 스레드와 프로세스 디버깅하기
요약
Chapter 6 WinDBG, SOS, ADPlus
준비 작업
설치
참고 자료
이것만은 알아두자
심볼 서버 설정
WinDBG 옵션과 창
디버기 다루기
Command 창
도움말 이용하기
정확한 심볼이 로드되었는지 확인하기
프로세스와 스레드
네이티브 스택의 탐색
예외와 이벤트
WinDBG를 제어하기 위한 명령어들
덤프 파일 처리
매우 유용한 확장 명령어들
SOS
SOS를 WinDBG에 로드하기
Visual Studio에서 SOS 로드하기
도움말 확인하고 명령어 사용하기
프로그램의 상태와 관리되는 스레드
관리되는 호출 스택
개체 데이터 표시하기
GC 힙 살펴보기
예외와 중단점
교착 상태
그 밖의 SOS 명령어들
ADPlus
정지 모드
충돌 모드
원하는 시점에 잡아내기
요약
Part 3
강력한 툴
Chapter 7 Visual Studio IDE 확장하기
매크로를 이용하여 확장하기
매크로 매개 변수
매크로 디버깅
코드 요소들
CommenTater: 감자 부패병 치료제?
그 밖에 유용한 매크로들
Visual Studio 애드-인
애드인 개발 트릭
옵션 페이지와 HiddenSettings 애드-인
SettingsMaster
요약
Chapter 8 코드 분석 규칙 작성하기
규칙 개발의 의미
규칙 개발 시 지켜야 할 사항들
가장 중요한 CheckMethod 요소
고급 규칙 개발
DoNotUseTraceAssertRule 규칙과
CallAssertMethodsWithMessageParametersRule 규칙 DoNotLockOnPublicFields, DoNotLockOnThisOrMe,
DoNotUseMethodImplAttributeWithSynchronized 규칙
AvoidBoxingAndUnboxingInLoops 규칙 ExceptionDocumentationInvalidRule 규칙과
ExceptionDocumentationMissingRule 규칙
요약
찾아보기