이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 청년패스
DeBUGGING C++
CHRIS H.PAPPAS 등저 / 이준하 역
인포북 2001.02.28.
가격
18,000
10 16,200
YES포인트?
900원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

이 상품의 태그

책소개

목차

Part Ⅰ. 코드 설계 기법
Chapter 1. 적합한 코드 작성
Chapter 2. 컴파일러 활용
Chapter 3. 논리 에러 vs. 구문 에러
Chapter 4. 디버거의 기초
Chapter 5. 디버그 vs 릴리즈 지원

Part Ⅱ. 프로시저 기반의 환경
Chapter 6. 명령행 코드의 에러 위치. 분석. 수정하기
Chapter 7. 인라인 어셈블리 언어 디버깅
Chapter 8. 윈도우 코드의 에러를 찾고 분석. 수정하기

Part Ⅲ. 객체지향적인 환경
Chapter 9. 명령행 코드의 에러를 찾고 분석. 수정하기
Chapter 10. 마이크로소프트 기반 클래스 라이브러리를 이용한 윈도우 프로그래밍
Chapter 11. MFC 윈도우 코드에서 에러를 찾고 분석. 수정하기

Part Ⅳ. 표준 템플릿 라이브러리
Chapter 12. STL 코딩 연습
Chapter 13. STL 코드에서 에러를 찾고 분석. 수정하기

Part Ⅴ. 특별한 디버깅 문제들
Chapter 14. DLL 디버깅
Chapter 15. ActiveX 컨트롤 디버깅
Chapter 16. COM. ATL. DHTML 디버깅
Chapter 17. STL. MFC 코

관련 분류

품목정보

발행일
2001년 02월 28일
쪽수, 무게, 크기
572쪽 | 1126g | 크기확인중
ISBN13
9788980544295

책 속으로

DLL을 디버깅하는 동안 발생하는 문제들은 대부분 DLL이 동작하지 않을 때 브레이크 포인트 설정이다. 마이크로소프트는 이 문제에 대해 몇 가지 이유를 제시한다.

첫째로, 대응하는 심볼릭 정보들이 디버거에 의해 메모리로 로드되지 않았을 때, 브레이크 포인트가 소스 파일 내에 지정되지 않은 것을 들 수 있다. 이것은 대응하는 심볼릭 정보들이 디버거에 의해 메모리로 로드되지 못할 때, 브레이크 포인트가 소스 파일내에 지정되지 않기 때문이다. 이럴 경우에는 "the breakpoint cannot be set" 메시지가 뜨거나 혹은 경고음이 울린다.

디버거는 디버그 될 코드가 시작되기 전에 어떻게, 어디서 브레이크 포인트가 발생하는지 추적하기 위해 브레이크 포인트 리스트를 사용한다. 디버깅이 시작되면, 디버거는 코드를 위한 심볼릭 정보들을 로드하고 브레이크 포인트 리스트를 따라 움직인다. 디버거는 브레이크 포인트를 정하려 하지만 만일 어떤 코드 모듈이 디버거를 찾지 않으면, 그 시도는 무시된다. 이 결과 breakpoint를 따라 진행할 때, 심볼릭 정보가 디버거에 전달되지 않게 된다. 이러한 이유 때문에, LoadLibrary()함수를 호출하기 전에 브레이크 포인트를 DLL에 설정하거나 운반자가 서버를 시작하기 전 ActiveX 서버에 브레이크 포인트를 지정한다.

대부분의 경우, 모든 추가적인 DLL과 COM 서버를 Debug/Option 대화 상자에 지정해 로드하고자 하는 DLL 파일들의 심볼릭 디버그 정보를 디버거에 알려줌으로써 문제를 피할 수 있다. 그 다음, 메모리에 로드되지 않은 브레이크 포인트들은 "가상" 브레이크 포인트로 지정된다.

두 번째 이유는 하드디스크에 하나 이상의 DLL이 존재하기 때문이다. 이 경우, 그 파일이 Windows 디렉토리에 있다면, 디버거는 혼란에 빠지게 된다. 디버거는 심볼릭 정보를 지정된 경로에서 읽어 들이지만, 윈도우는 다른 DLL을 메모리로 읽어들이기 때문이다. 이런 실수를 피하기 위한 가장 좋은 방법은 단 하나의 DLL만을 하드디스크에 두던지, 모든 파일들이 동일한 파일인지 확인하는 것이다.

--- p.488

리뷰/한줄평5

리뷰

6.8 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.