Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 성산 혼밥
- 영어
- 천안 맛집
- 제주도
- 제주도 맛집
- 포스트크로싱
- 성산 맛집
- 플레이스캠프
- 영어공부
- 성산 혼술
- 제주도 숙소
- 파이썬
- 제주도 여행
- 성산
- 혼공챌린지
- 명동
- 제주도 성산
- 맛집
- 혼공단
- 엽서
- 제주도 혼술
- 말해보카
- 엽서북
- 제주도 혼밥
- 혼공머신
- postcrossing
- postcard
- 제주도 카페
- 혼공파
- PYTHON
Archives
- Today
- Total
Cherry Cloud 9
[MFC] Thread 사용 중 원인을 알 수 없는 memory leak 발생 시 CString을 확인해보자. 본문
Programming/API,MFC
[MFC] Thread 사용 중 원인을 알 수 없는 memory leak 발생 시 CString을 확인해보자.
체리구름 2021. 1. 15. 17:03728x90
반응형
개발 중에 짜증나는 점을 하나 꼽는다면 프로그램 디버깅 후 발생하는 memory leak이다.
제때 메모리를 해제해 주려고 노력하지만 가끔가다 한번씩 해제를 까먹을 때도 있고 등등 다양한 이유로 한번씩 발생하곤 하는데 이번 memory leak은 코드를 한줄 한줄 체크할 만큼 그 원인을 찾기가 매우 어려웠다.
원인은 Thread 내부에서 사용된 CString 이었다.
Thread 사용 중 TerminateThread 와 같이 강제 종료 될때,
CString 에서 사용하는 메모리 영역이 제대로 해제 되지 않아 발생할 수 있다.
(그런데 평소 다른 thread 에서는 잘 만 되다가 해당 부분에서 memory leak 이 생겼는지는 더 확인을 해봐야 할 것 같다)
결론은 thread가 종료 되기 전 CString 객체에서 Empty() 를 호출하여 문자열을 비워주면 나를 괴롭혔던 memory leak이 사라지는 것을 확인할 수 있다.
Thread 사용 중 원인을 알 수 없는 memory leak 발생 시 CString을 확인해보자.
728x90
반응형
'Programming > API,MFC' 카테고리의 다른 글
[MFC] Thread를 사용하지 않고 무한 반복 중 stop 버튼으로 멈추기 (0) | 2021.01.16 |
---|---|
[MFC] CString 마지막 글자 제거하기 (0) | 2020.11.16 |
[MFC] 인스턴스 1개만 생성하기 (0) | 2020.11.02 |
Warning: skipping non-radio button in group (0) | 2017.03.16 |
CString -> int, double 형변환 (0) | 2017.03.08 |