Visual C++ 파워풀 개발 테크닉 오류 수정

@codemaru · December 13, 2010 · 2 min read

p19, p20

Visual C                    md 0

p19, p20에 있는 그림1과 그림2가 위와 같은 형태로 변경되어야 합니다. 위쪽이 그림1, 아래쪽이 그림2를 나타냅니다. 잘못된 내용은 우선 FREE와 RESERVE 메모리가 구분 없이 그려졌고, 16진수를 사용하면서 더하기는 10진수로 해버린 문제가 있었습니다. 흰색은 RESERVE 영역, 회색은 COMMIT영역, 검은색은 FREE 영역입니다. 그림1에서 FREE 영역의 크기가 0x2000으로 표기된 것이 0x8000이 되어야 하고, 그림2에서는 0x1000의 COMMIT 뒤쪽 부분이 모두 잘못 그려진 내용이 수정되었습니다. 노란 박스는 화살표 지점이 메모리의 어떤 번지를 나타내는지를 의미합니다.

p21

VirtualFree(0x12000, 0x5000, MEM_DECOMMIT)을 하면 책의 설명처럼 2, 4번 영역을 모두 예약 상태로 변경하지 않습니다. 0x12000부터 0x16fff까지의 영역을 해제하기 때문에 결과적으로 2번 영역만 해제가 됩니다. 책에 나온대로 2, 4번 영역을 모두 한번에 해제하기 위해서는 VirtualFree(0x12000, 0x5001, MEM_DECOMMIT)과 같은 형태로 사용해야 합니다.

p90, p91

그림2, 그림3에 표기된 EPS는 ESP가 되어야 합니다. ESP 레지스터가 가리키는 지점을 나타냅니다.

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중