A Sip of Turkish Coffee
A Sip of Turkish Coffee by Kuzeytac (OUT, till 20.08.09-see profile) 저작자 표시비영리변경 금지

(위 짤방은 그냥 Filckr 에서 'heap' 으로 검색하니까 나온 이미지로, 본문과는 전혀 상관 없습니다;;;)

언젠가부터 자꾸 map 처리에서 exception 이 발생하기 시작했습니다...
해당 map 이 상당히 간단하게만 사용되던 부분이라 중첩콜 되는 부분도 없었고, 여러 스레드에서 호출되는 부분도 없었던지라
map 사용 오류라기 보다는 어디선가 다른 코드에서의 메모리 쓰기 오류로 판단만 하고 있었죠...
자주 발생하고 재현하기가 쉬운 문제라면 디버깅이라도 해서 문제 부분을 잡을 수 있겠지만 그런것도 아니었기에 난감한 상황이었습니다.

어찌되었든 해결을 해야 했기에 배열 인덱스 검사 코드 강화, map 사용 코드 다시 확인 등등을 해도 찾기가 쉽지 않더군요..

인터넷에서 검색을 해보니 도움을 받을 수 있는 프로그램들이 있는 것 같았지만 모두 상용 프로그램인지라 쉽사리 사용할 수도 없었습니다.
그러던 중 _heapchk() 에 대한 내용을 봐서 혹시나 하는 마음에 코드에 추가하여 로그를 살펴보기로 했었습니다.

결과는 일단은 성공입니다.

로그에 _heapchk() 오류가 남은 부분을 다시한번 체크해보니, 배열 사용하는 부분이었는데 배열 인덱스 체크하는 부분이 없어서 잘못된 인덱스에 대한 대비가 안되어있는 부분이더군요.

정확한 오류부분을 찝어주지는 않지만, 범위를 좁혀가는 식으로 사용하면 큰 도움이 될 것 같습니다. :)
반응형

'저장고 > C++' 카테고리의 다른 글

std::string 문자열 공백 자르기 함수  (0) 2009.04.28
COptionTree를 vs2003에서 사용하기  (0) 2009.04.10
GoogleTest??  (2) 2008.10.14

+ Recent posts