|
아주 꼭지가 돌아 버릴 것 같습니다..
메인 폼에 structure 타입으로 된 배열을 잡았습니다.
프로그램 뜰 때 이 배열에 데이터 초기화 하고 그 이후에는 값을 사용함 하는데.
어느 순간 이 배열의 값이 바뀌어 있습니다. 오만가지 트레이스를 다 해보았는데..
특정 동작을 끝낼 때 까지는 그 배열의 값이 유지가 되는데..
마우스로 다른 어떤 이벤트를 발생 시킬 때 배열의 값이 바뀌어 버립니다.
typedef struct _xSite {
AnsiString SiteMAC;
AnsiString SiteName;
.....
} xSite;
메인 폼의 멤버 변수
xSite m_xSiteList[SITECOUNT];
가령,
void DataUpdate() 함수를 이용해서 DB에 데이터를 업데이트 하는 작업을 수행하면
m_xSiteList[0].SiteMAC 값이 이상하게 변경되어 있습니다. 가끔 쓰레기 값이고, 가끔은
함수 내부에서 사용했던 sql 문장의 일부분이 될 수 있구요..
분명히 메모리 누수 문제인 것 같은데.. 도무지 어디 인 지 감을 잡을 수가 없습니다.
도와 주세요..
MEMProof 라는 툴에서 돌리면 아래와 같이 나오는데.. 어느 부분을 봐야 할 지..
620451D5 - in (-1)
620453D7 - in (-1)
075A3B3C - in
Exception C0000005 ACCESS_VIOLATION at 06DF3C0F
---- Exception stack trace ----
06DF3C0F - ReallocMemory in (-1)
0CD01532 - in (-1)
0CD01939 - in (-1)
0CD142CE - __cg_stockResource in (-1)
0CD145E0 - __cg_stockResource in (-1)
0CD0174B - in (-1)
0CD01774 - in (-1)
620451D5 - in (-1)
620453D7 - in (-1)
075A3B3C - in
Exception C0000005 ACCESS_VIOLATION at 06DF3C0F
---- Exception stack trace ----
06DF3C0F - ReallocMemory in (-1)
0CD01532 - in (-1)
0CD01939 - in (-1)
0CD142CE - __cg_stockResource in (-1)
0CD145E0 - __cg_stockResource in (-1)
0CD0174B - in (-1)
0CD01774 - in (-1)
620451D5 - in (-1)
스택의 어느 부분일 것 같은데.. 도와주이소..
감사합니다.
참고로 CodeGuard에서는 메세지 없이 깨끗하거든요..
|