자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
환경: C++ Builder XE5
Component: AsyncPro Serial Component V4.07

AsyncPro Component를 통해 주기적으로 COM Port를 통해 데이터를 주고 받는 프로그램이 있습니다.
약 일주일 정도 운용되면 더이상 AsyncPro의 수신 이벤트가 발생하지 않습니다.
10여년간 이 Component를 써오면서 이런 증상은 처음이네요.
..
처음에는 갈피를 못잡아서 Com Port에서 데이터가 수신될 때마다 로그에 쓰도록 해 놓고
디버그를 해 보니 약 1주일 실행된 후, Com Port에 데이터 요구 패킷를 보낸 후
아무런 응답이 없습니다.
..
프로그램 문제라고 확정하는 것이, 프로그램을 종료 후 다시 실행시키면
정상적으로 AsyncPro Component를 통해 정상적으로 데이터를 받아 옵니다.
..
문제는 이 프로그램이 Memory Leak 증상이 있는 것인데요..
다른 분이 개발한 프로그램인데 운용하다보면 Memory Leak이 발생해
Process Size가 지속적으로 증가합니다. 소스 코드를 보면





TNormalQData *nqData = (TNormalQData*)GlobalAlloc(GPTR, sizeof(TNormalQData));
....
GlobalFree(nqData);

이런 형태로 Heap 영역을 계속 할당 / 해제를 반복합니다.
해제 코드가 들어가 있지만 어딘가에서 구멍이 나 있는 게 아닌가 합니다.

저의 생각은,
Heap 영역을 계속 소모하다가 VCL이 차지하고 있는 영역까지 소모하면서
AsyncPro component의 코드영역까지 침범해서 이런 증상이 나타나는 것이 아닌가 합니다.
그런데, 이런 것이 가능한 가설인 지?

질문 1: Component가 동작하다가 자신의 동작을 하지 않을 때(Event가 발생하지 않을 때) 어떤 것을 의심해 보아야 할 지?
         (현 상황에서는 AsyncPro Component가 특정 시점이 되면 아무런 동작을 하지 않는 것 같습니다.)

질문 2: Heap 영역을 GlobalAlloc()등으로 계속 소모할 경우 VCL Component가 가지고 있는 메모리 영역까지 침범할 수 있는 지?

이 버그.. 난감합니다.

고수님들의 조언을 바랍니다.

감사합니다.
번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15769
공지 유용한 관련 사이트 관리자2 2014.03.20 54583
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98002
104 볼랜드포럼에서 논의가 되고 있는 C++11 32비트의 Exception코드 문제 [1] 더스틴 2015.09.16 587
103 C++ Builder 6의 project에서 네트워크 공유폴더 경로에 있는 Source파일이 열리지 않습니다. [3] file 영우CnI 2019.08.09 593
102 폼에 콤보 박스 200개(item 60개) 실행시 시간 오래 걸림 현상 [2] file 포세가이 2020.03.05 615
101 [공유] 빈 프로젝트 실행 에러(Fatal: Unable to open file 'RTL.BPI') [8] 험프리 2020.05.19 652
100 C++ Builder 10.3 / 10.3.1 Clang에서 Code Insight 동작하지 않는 현상 질의? [3] 포비 2019.02.21 660
99 업데이트 후 IdIcmpClient (ping) 오류 [2] icj 2020.03.06 671
98 중국어 깨짐.. [1] 시작.. 2021.08.06 682
97 C++builder 10.1 Berlin DLL에 vcl 테마 적용 방법 질문 [5] file gildong 2020.03.19 750
96 배포시 borlndmm.dll 찾지못하는 문제때문에 문의 드려요. [2] 현수막 2017.10.25 754
95 [bcc32c Error] GdiplusPath.h(146) reference to 'byte' is ambiguous [2] 하루 2019.11.15 756
94 연결프로그램 설정 방법 문의 [2] 손보라 2018.11.01 816
93 indy udp 서버로 수신한 데이터에 대한 응답을 udp로 보내는 echo 서버를 만들었는데 [2] 금목암 2019.11.15 832
92 FireDAC으로 Oracle 클라이언트 프로그램 배포시 [3] file 나도몰라 2017.05.29 855
91 FDquery 컴포넌트 관련 질문 드립니다,. [2] 총이 2015.01.13 910
90 프로그램 배포 시 사용하는 release 모드 설정이 안됩니다. [6] devsky 2015.06.09 914
89 Lib Path 설정방법 [1] 이영진 2017.08.13 916
88 텍스트화일 입출력 문제 [2] 한시민 2016.04.11 918
87 JSON 포맷의 데이터를 이용하고 싶습니다. [1] 험프리 2016.11.02 920
» [질문] Component의 Event 발생하지 않을 경우 어떤 것을 확인해보아야 하는가? [2] 정호근 2015.01.22 934
85 C++ 빌더 블루투스 통신 질문드립니다. [7] wjddlstjq 2015.11.01 971