ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MSVC 컴파일러 옵션 /WX 와 /RTCc 내용
    프로그래밍/프로그래밍 관련 2012. 1. 31. 16:09

    건의의 이유

    1.     개발자가 예기치 않은 실수에 대해서방지해 주거나찾아 주는 역할을 합니다.

    2.     경고들이 버그가 되었을 때넘어오지 못하는 ” 역할을 해 줍니다.

    3.     개발이 용이해 집니다.

     

    /WX에 대해

    1.     장점

    A.     경고를 에러로 승급 시켜 줍니다.

    B.      그러므로 경고가 발생한 것들은 찾아서 없애주어야만 합니다.

    C.      컴파일 타임에 수행합니다.

    D.     Cast 변환에 대해서 무척 깐깐하게 지켜줍니다.

    E.      초과 비트에 대한 변환에 대해서도 깐깐하게 지켜 줍니다.

    2.     단점

    A.     모든 경고가 에러로 처리 하므로경고를 없애야만 컴파일이 됩니다.

    B.      컴파일 단계에서 찾아 주기 때문에 컴파일 시간이 조금 더 걸립니다.

     

    /WX에 대한 사람들의 평

    1.     컴파일 시간이 조금 더 걸리지만버그 잡는데 들어가는 시간에 비해 적기 때문에 거의 긍정적인 반응 입니다.

    2.     컴파일 타임에만 잡아 주기 때문에반쪽 짜리 ” 이라고 개인적으로 하나 /RTCc와 결합하면 완벽해 집니다.

     

    /WX를 하는 방법은?


    /WX 관련 링크는?

    1.     http://msdn.microsoft.com/ko-kr/library/ms235592(VS.80).aspx 

     

    /RTCc에 대해서

    1.     장점

    A.     /WX가 컴파일 타임에 해 주었다면 /RTCc는 런타임에서 체크해 줌으로써 서로 보완합니다.

     

    B.      16비트 데이터가 8비트 데이터로 변환 될 때손실 한다면 경고창을 띄워 줍니다.(형변환은 되나 잘못될 경우에만)

     

    C.      Unsigned 데이터에 -1 값이 들어 갈 때도 역시 경고창을 띄워 줍니다.

                             i.         이는 배열이나 잘못된 값으로 셋팅 되는 것을 찾아 줍니다.

     

    D.     버튼 클릭 한번으로 설정을 넣고 뺄 수 있습니다

     

    E.      일일이 값을 체크하는 수고를 컴파일러가 런타임에 수행해 주며예기치 않은 경우도 역시 런타임에 수행하여런타임 중 발생 될 수 있는 변환 에러를 찾아 주어디버깅 시간을 줄여 줍니다.

     

    2.     단점

    A.     전체 퍼포먼스 에서 대체로 1~2% 떨어 진다고 합니다(http://www.yes24.com/24/goods/1376522 가 그랬습니다.)

     

    퍼포먼스를 어떻게 극복 하는가?

    1.     상용화 버전은 옵션을 끄고개발 할 때는 옵션을 킵니다. : )

     

    어떻게 셋팅 하는가?

     

    dfs

    어떻게 디버깅이 쉬워지는가?

    1.     경고창 발생 후, “다시 시도” 버튼을 프로젝트의 해당 발생 지역으로 워프 합니다. : )

     

    다른 사람들의 평

    1.     KGC 2008 참석 당시 마소에 온 강연자가 반드시 기본으로 켜야 하는 옵션이라고 했을 정도로 중요하다고 합니다.

     

    관련 링크는 어디에 있는가?

    1.     http://msdn.microsoft.com/en-us/library/aa289171.aspx#securitychecks_topic4

    2.     http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx

     

    개인적 의견

    1.     윈도우에서 서버를 띄워서 테스트할 때 좀 더 편해 질 것으로 생각 됩니다.


    출처 -  http://blog.naver.com/badajoa2002?Redirect=Log&logNo=64207096 

    댓글