|
C++ Builder XE5
AsyncPro 컴포넌트를 이용하여 시리얼 통신으로 데이터를 받아오는 프로그램입니다.
잘 동작하다가(24시간 운용하는 S/W), 일주일쯤 지나면 시리얼에서 데이터를 받아오지 못합니다.
로그를 보면 시리얼에 전송한 것은 있고 수신 내역이 없는 것으로 보아 시리얼 수신 이벤트 자체가
발생하지 않은 것으로 보입니다.
이 프로그램은 약간 메모리 누수 현상이 있는 프로그램입니다.
일주일 정도 운용되면 원래 메모리의 약 2~3배 정도(7MByte에서 시작해서 17~28Mbyte)되었을 때 이런 증상이 나타납니다.
메모리는 Malloc()로 HEAP영역을 사용하고, Release는 빠짐없이 하는 것 같은데 어딘가에서 누수가 발생하는데,
이것도 이상한 것은 비교적 고사양의 PC에서는 누수 현상이 없고, 저사향 PC에서 발생한다는 것입니다.
시리얼 통신은 잘 되다가 어느 시점이 되면 AsyncPro의 수신 이벤트 자체가 발생하지 않는 것으로 보여지는데..
이유를 알 수 가 없습니다. AsyncPro 컴포넌트는 그동안 잘 써왔던 컴포넌트인데,이런 증상이 나타나니 당황스럽네요.
메모리 증가 현상이 좀 의심이 가는데요..
같은 개발 환경에서 개발한 다른 프로그램은 시리얼 통신으로 데이터를 잘 받아오거든요.
이런 상황일 때 어떻게 Trouble Shooting해야 할 지 고수님들의 의견 바랍니다.
감사합니다.
|