반응형
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
- 전자소송
- vue
- 개인사업자
- Python
- auth
- 보정명령
- 소액임금체불
- reactnative
- 홈택스
- Java
- as후기
- 당사자표시정정신청서
- Blade
- 코로나
- Eclipse
- 체당금
- 인민공원
- blockchain
- Bootstrap
- javascript
- 이더리움
- php
- Tutorial
- win32
- Laravel
- 코로나19
- 사업자계좌
- elasticSearch
- cartalyst
- Sentinel
Archives
- Today
- Total
그냥 사는 이야기
LoadLibrary() / FreeLibrary() 에서 memory leak 발생 본문
반응형
LoadLibrary/FreeLibrary memory leak
실행 환경
- Windows Server 2008 x64
- MS Visual-Studio 2008
Test Code
먼저 메모리릭이 나는 코드를 간단하게 보면
while (1)
{
HMODULE hModule = LoadLibrary ( "C:\\Windows\\servicing\\cbsmsg.dll" );
if ( hModule )
{
FreeLibrary( hModule );
}
else
{
cout << GetLastError() << endl;
}
}
DLL 라이브러리를 로드해주는 루틴이다. load 함수와 동시에 free를 해주는 구조로 계속 looping을 돌렸다.
Error Code 193
그런데 문제는 실제 load는 실패하고 있었다. 그래서 hModule은 NULL 을 가지게 되었고 error code는 아래의 193을 뱉는다.
그런데 조사해보면 메모리는 자꾸 늘어난다. debug를 위해 breaking를 걸어두면 늘지 않는데 debug모드가 아니면 쭉쭉 늘어나버린다. 당분간 진행은 여기서 홀딩 시켜두고 틈틈이 관련있는 내용을 찾아봐야겠다.
http://pallas.egloos.com/1299794 ansi 혹은 유니코드의 빌드 바이너리의 character set이 다른 경우도 leak이 발생하는 것 같다. 내 문제도 이런 경우인가???
'Development > System' 카테고리의 다른 글
Wow64 redirection 해제(x64) (1) | 2010.01.27 |
---|---|
devcon을 사용하여 disk를 disable 시키기 (0) | 2009.10.21 |
IcmpCreateFile() 의 handle은 꼭 IcmpCloseHandle()을 해주자 (0) | 2009.04.16 |
wmic에서 원하는 data 필드의 값 추출하기 (2) | 2009.03.20 |
인증서를 발급 받고 그걸로 code signing을 해보자~ (5) | 2009.02.17 |
Comments