[C++/CLI 디버깅] 어느 게 CLR 코드야?

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:July 13, 2007

#pragma managed 또는 #pragma unmanaged를 섞어가며 코드를 작성해 놓으면, 디버깅 중에 지금 보고 있는 코드가 CLR 코드인지, Native 코드인지 구분이 안 갈 때가 있다. 이런 경우엔 우선 로컬 변수의 초기화가 어떻게 되어 있나 보자.

int main()
{
	int i;

	for(i = 0; i<100; i++)
	{
		......
	}
	......
}

3번째 줄에 중단점을 선언해 놓고, 정수형 변수 i의 값을 확인해보자. CLR 코드라면 0으로 초기화되어 있을 테고, 그렇지 않으면 초기화되지 않은 이상한 값이 들어있을 것이다.

아니면 Watch 창에 &i를 추가해봐도 된다. Unmanaged 코드라면 Error: symbol "i" not found라는 경고 메시지를 보게 될 테고 그렇지 않다면 변수 i의 주소를 보게 될 것이다.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.