[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의 주소를 보게 될 것이다.

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

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

0 Comments
Inline Feedbacks
View all comments