Kbase P164512: 4GL/ABL: Debugger Dynamic Object Tracking reports false MEMPTR variable memory leak
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/28/2010 |
|
Status: Unverified
SYMPTOM(s):
4GL/ABL: Debugger Dynamic Object Tracking reports false MEMPTR variable memory leak
When a Function/Method method returns a MEMPTR, the MEMPTR in the called Function/Method remains in the object viewer of the 'Dynamic Object Tracking' dialog after the procedure ends.
Stepping through the following code, line by line, in the OpenEdge Debugger after enabling 'Dynamic Object Tracking' for all objects, the MEMPTR from the called function remains in the object viewer after the procedure end:
DEFINE VARIABLE mCaller AS MEMPTR NO-UNDO.
FUNCTION MemoryLeakTest RETURNS MEMPTR(INPUT cFileName AS CHARACTER) FORWARD.
ASSIGN
mCaller = MemoryLeakTest(INPUT "M00B78BB02216").
SET-SIZE(mCaller) = 0.
MESSAGE "Observe the MEMPTR still appears in the object viewer of the 'Dynamic Object Tracking' Dialog."
VIEW-AS ALERT-BOX INFO BUTTONS OK.
FUNCTION MemoryLeakTest RETURNS MEMPTR(INPUT ipcFileName AS CHARACTER):
DEFINE VARIABLE mCalled AS MEMPTR NO-UNDO.
ASSIGN
FILE-INFO:FILE-NAME = ipcFileName
SET-SIZE(mCalled) = FILE-INFO:FILE-SIZE.
INPUT FROM VALUE(ipcFileName) BINARY NO-MAP NO-CONVERT.
IMPORT UNFORMATTED mCalled.
INPUT CLOSE.
RETURN mCalled.
END FUNCTION.
FACT(s) (Environment):
Windows
OpenEdge 10.2B
CAUSE:
This is not a true memory leak. It is a bug in the OpenEdge Debugger Dynamic Object Tracking viewer.
CAUSE:
Bug# OE00197330
FIX:
None at this time. As a workaround, use the Windows Task Manager to monitor the memory consumption of the prowin32.exe process and determine whether you have a true memory leak or not.