반응형

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=762711&ref=762711




VS 2005에서 "새 데이터 중단점"이 활성화가 안되길레...

어떻게 하는건가 싶어서 VS의 Help에 검색해봤더니...

 

==================================================

방법: 데이터 중단점 설정(네이티브 전용)

 

데이터 중단점을 사용하면 특정 메모리 위치에 저장된 값이 기록될 때 실행을 중단할 수 있습니다. 값을 쓰지 않고 읽을 때는 실행이 중단되지 않습니다.

 

디버깅되지 않는 프로세스에서 해당 메모리 위치에 쓰는 경우나 둘 이상의 프로세스에서 해당 메모리 위치를 공유하는 경우에는 데이터 중단점이 작동하지 않습니다. 커널 내에서 메모리 위치가 업데이트되는 경우에도 데이터 중단점이 작동하지 않습니다. 예를 들어 32비트 Windows ReadFile 함수에 메모리가 전달된 경우 커널 모드에서 메모리가 업데이트되므로 메모리에 쓸 때 디버거에서 실행이 중단되지 않습니다.

 

데이터 중단점을 설정하려면 디버거가 중단 모드여야 합니다.

 

변수의 주소는 디버깅 세션마다 달라집니다. 이러한 이유로 데이터 중단점은 각 디버깅 세션이 끝날 때 자동으로 해제됩니다.

데이터 중단점을 지역 변수에 설정한 경우에는 함수가 종료되어도 데이터 중단점이 설정된 상태로 유지됩니다. 그러나 설정된 메모리 주소의 의미는 달라집니다. 따라서 이러한 중단점의 결과는 예측할 수 없습니다. 지역 변수에 데이터 중단점을 설정한 경우에는 함수가 종료되기 전에 중단점을 제거하거나 해제하는 것이 좋습니다.

 

Visual Studio에서는 솔루션당 최대 4개의 데이터 중단점을 지원합니다.

 

메모리 변경 중단점을 설정하려면

  1. 디버그 메뉴에서 새 중단점을 선택한 다음 새 데이터 중단점을 클릭합니다.

    ? 또는 ?

    중단점 창 메뉴에서 새로 만들기를 클릭한 다음 새 데이터 중단점을 선택합니다.

    새 중단점 대화 상자가 나타납니다.

  2. 주소 상자에 메모리 주소나 메모리 주소를 계산하는 식을 입력합니다. 예를 들어, &avar 를 입력하면 avar 변수의 내용이 바뀔 때 실행이 중단됩니다.

  3. 바이트 계산 상자에 디버거에서 조사할 바이트 수를 입력합니다. 예를 들어, 4를 입력하면 디버거에서 &myFunction부터 4바이트를 조사하고 이러한 바이트의 값이 변경되면 실행을 중단합니다.

  4. 확인을 클릭합니다.

 

=======================================================

 

라고 나오네요. ;;;; ㅎㅎㅎ

 

그런데 여기서.... "네이티브 전용"이라는 말의 의미를 모르겠어서... 이렇게 질문을 드립니다.

객체의 멤버 변수들을 모두 NULL값으로 초기화 해서 생성했는데, 막상 사용할때 보니 쓰레기 값이 들어가있는 멤버들이 몇개 있어서... 이러고 있답니다. 에휴...

 

멋진분의 답변을 기다리고 있겠습니다.감사합니다.

반응형

+ Recent posts