본문 바로가기

Study178

#pragma warning 사용법 관련 원래 warning이 발생하는 코드는 모두 수정하여 발생하지 않도록 하고 있으나 간혹 외부에서 가져다 쓴 모듈이나 cpp파일등에서 warning이 발생하는 경우가 있다. 수정을 해되 되겠지만 괜시리 손대기 찝찝할때...이미 검증된 기능이므로 손댈 필요가 없는 경우들이 있는데 이럴때는 특정 cpp파일에만 특정 warning에 대한 disable 기능을 선언하여 컴파일이 warning이 발생하지 않도록 할 수 있다. 해당 내용이 잘 정리된 사이트가 있어 퍼왔다. 1. 경고 번호 줄여쓰기 #pragma warning( disable : 4702 ) → #pragma warning( disable : 702 ) 컴파일러가 알아서 4000을 더해줍니다. 2. 같은 warning 지시어에 대해 줄여쓰기 #pragm.. 2021. 1. 6.
warning C4800 처리를 해보자 warning 제거 작업을 하던중 warning C4800: 'BOOL' : 'true' 또는 'false'로 bool 값을 강제하고 있습니다warning C4800 - 'int' forcing value to bool 'true' or 'false' with switch statement 예를 들어 이런 소스들이 존재한다고 할때 ex) int i = 0;bool bVal = i; ///< warning 4800발생BOOL bT = FALSE;bool bZZ = bT; ///< warning 4800발생 뭐 흔히들 저런 Warning 처리를 아래와 같이 해결하려 할것이다. int i = 0;bool bVal = static_casti; ///< warning 4800발생BOOL bT = FALSE;boo.. 2021. 1. 6.
Crash 발생 프로그램의 dump 생성 방법(Dump없이 죽는 프로그램도 해당) - procdump 사용 개발된 프로그램이 Release되어 고객이나 일반 사용자에게 배포되어 사용하게 되면 정말 예상치 못한 일들이 상당히 발 생하게 된다. 그 중 랜덤하게 개발된 프로그램이 소리소문 없이 죽어버리는(?) 문제에 대해 최소한의 해결 실마리를 찾을 수 있는 방법에 대해 공유하고자 한다. 해당 문제가 재현이 잘되는 경우라면 당현이 개발자 PC에서 디버깅을 통해 문제를 찾고 수정할 수 있으나, 이러한 문제 들은 대부분 개발자 PC에서 잘 재현되지 않으며, 사용자 PC에서도 간혈적으로 발생하는 문제라면 더욱더 문제처리를 하기가 어려워진다. 로그를 통해 문제를 추적해 볼 수 있으나 이 또한 애매한 경우가 상당수다.. 물론 Release하는 프로그램이라면 당연히 프로그램내에 mini-dump정도는 생성하는 로직이 필수로 .. 2021. 1. 5.
Visual studio - 조건 브레이크를 통한 디버깅 방대한 양의 코드에서 Debuging을 진행할때 특정 변수의 메모리가 초기화 되거나 또는 특정 문자열이 바뀐다던지.. 아니면 std::map이나 std::vector의 사이즈가 변경된다던지.. 이런 유형의 버그를 찾기란 쉬운일이 아니다... 특정 변수에 대한 접근 코드가 많고 또 그것을 어떤 함수를 통해 포인터 반환값으로 그 포인터를 이용해 데이터를 변경 하고 있다거나.. 정말 미친듯한 멀티쓰레드에서의 접근 처리가 이뤄지고 있다면.. 그것이야 말로 지옥이 따로 없다. -_-; 또한 find all로 검색시 몇천, 몇만 라인이상의 검색결과가 나올때는 정말 우울하고, 직종 변경을 다시한번 생각하게 만든다. 하지만 걱정하지 마라 이런 부분에 관련하여 Visual studio에서는 특정 상황에 중단점(브레이크 .. 2020. 4. 21.