상세 컨텐츠

본문 제목

[C,C++] 디버깅 (브레이크포인트)중단점 적중 문제

C, C++

by oksk2003kr 2019. 11. 19. 18:05

본문

반응형

디버깅 중 브레이크포인트인 중단점 위치가 잘못 표시되는 현상

설명하려는 해당 문제사항인지 아래부분을 확인해야한다.


내가 디버깅하려는 라인의 위치가 65535(0xFFFF) 넘었는가?


if(라인수 > 65535)
   포스팅 이어 읽기
else
   포스팅 나가기

모든 개발환경이 동일하게 적용되는지는 모르겠다. 나의 개발환경의 경우 VIsual Studio 2010 64비트
라인 수가 65535(0xFFFF)를 넘게 되면, 브레크포인트가 비정상적인 위치에서 적중된다, 이유는 디버깅에 대한 라인 최대 저장크기를 넘어서 OverFlow가 발생하는 것 같다.

따라서, 해당 문제의 함수를 65535(0xFFFF) 줄 안으로 소스를 위로 올리면 된다. 

이때 고려해야하는 문제가 있는데, 함수내에서 사용되는 함수이다. 
C++ 클래스화 했을 경우 헤더 클래스에서 선언을 했다면,  문제의 함수를 위로 올리면 간단히 문제를 해결된다. 
그러나 만약 C 형식으로 프로그램을 개발했다면, 원형선언 없이 개발을 했다. 아래와 같은 개발로 인해 글자 수를 넘어가게 됬을 것으로 추측된다.

 

문제 상황
함수A(){ }
함수B(){ }
함수C(){ }
문제함수D()
{
     함수A ()
     함수B ()
     함수C ()
}

문제의 함수에서 사용하는 다른 함수 함수원형 선언을 해서 컴파일러에게 가르쳐줘야한다.

 

해결책

 

함수A();
함수B();
함수C();
문제함수D() 
{ 
     함수A ()
     함수B ()
     함수C ()
} 

함수A(){ } 
함수B(){ } 
함수C(){ } 


.C or . H 둘다 가능하지만, 개인적으로 다른곳에서 사용하지 않는다면 C에 선언하길 권장한다.

* 라인 수를 확인하고 싶다면 VisualStudio 옵션 설정에서 Enable,Disable 할 수 있다.

반응형

관련글 더보기

댓글 영역