edmiRemoteMemoryLogging

 EdmiError  edmiRemoteMemoryLogging   (SdaiServerContext       serverContextId,
                                       SdaiOptions             options,
                                       SdaiString              superuserPassword, 
                                       SdaiInteger             appserverPortNumber,          
                                       SdaiString              localFileName,
                                       SdaiSelect              extensionArg1,
                                       SdaiSelect              extensionArg2,
                                       SdaiSelect              extensionArg3,
                                       SdaiInvocationId       *edmiInvocationId);


This function is intended for analysis of virtual memory allocation and deallocation in the actual running EDMcore, for the purpose of detecting memory leaks.

Running EDMcore can be an EDMserver, EDMappServer or EDMstandAlone (EDMtoolkit).

Only the user 'superuser' or users that provides the 'superuserPassword' argument is authorised to perform this function.

This function is intended for expert-use only and is currently available in debug version of EDMcore.

Arguments


TypeNameComment
SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

SdaiOptions

options

See description of available options below.

SdaiString

superuserPassword

Optional argument.The password of 'superuser' when another user than 'superuser' want to perform memory logging in an EDMserver or EDMappServer
SdaiInteger
appserverPortNumber

Optional argument. Only effective with the option APPSERVER_OPERATION. Specify the port number of the actual EDMappServer to perform logging on.

With the option APPSERVER_OPERATION and no 'appserverPortNumber' argument specified, the actual server context's connected EDMappserver will be the actual EDMcore to

perform the memory logging operation on.

SdaiString

localFileName

The file name to receive the result of the memory logging

SdaiSelect

extensionArg1

For future extension

SdaiSelect

extensionArg2

For future extension

SdaiSelectextensionArg3For future extension
SdaiInvocationId

edmiInvocationId

Currently not used.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

 

Options


  

1OptionsComment
2APPSERVER_OPERATIONMemory logging function on an EDMappserver
3SERVER_OPERATIONMemory logging operation on an EDMserver
4
CLOSE_MEMORY_LOGGING

Close current active memory logging. The result will be written to the "CLOSED_MEMORY_LOGGING_RESULT" file. The current logging result will be cleared,

5
START_MEMORY_LOGGING                 
Start memory logging
6
STOP_MEMORY_LOGGING                  
Stop memory logging. Memory logging may be restarted (continued) with the START_MEMORY_LOGGING option
7
RESTART_MEMORY_LOGGING              
Valid option together with the CLOSE_MEMORY_LOGGING option, i.e,., as performing a CLOSE_MEMORY_LOGGING followed by a START_MEMORY_LOGGING operation
8
GET_CURRENT_MEMORY_LOGGING_RESULT   
Read the current memory logging result, i.e., the result collected since the last CLOSE_MEMORY_LOGGIN operation
9
GET_CLOSED_MEMORY_LOGGING_RESULT   
Read the "CLOSED_MEMORY_LOGGING_RESULT" file.

 

Example

PUBLIC EDMLONG C_RemoteMemoryLeakCatcher(tMenu *pMenu)
{
tCmndDescr *pCommand;
tSubMenu *pSubm;
EDMLONG rstat = OK;
SdaiServerContext serverContextId;
char *fileName,*tempFileName = NULL;

pCommand = pMenu->pCommand;
pSubm = pCommand->pMenu;

if (rstat = edmiGetServerContextId(*pSubm[0].pParVal,&serverContextId)) goto err;
fileName = *pSubm[2].pParVal;
if ((*fileName == '\0') && ((remoteMemoryLeakCatcherOptionsValue & GET_CURRENT_MEMORY_LOGGING_RESULT) || (remoteMemoryLeakCatcherOptionsValue & GET_CLOSED_MEMORY_LOGGING_RESULT))) {
tempFileName = fileName = getEdmsTempFileName();
}
if (rstat = edmiRemoteMemoryLogging(serverContextId,remoteMemoryLeakCatcherOptionsValue,*pSubm[1].pParVal,fileName,NULL,NULL,NULL,NULL)) goto err;
if (tempFileName != NULL) {
(void) displayFile(tempFileName);
}
err:
return(rstat);
}


 

See also 

Filter by label

There are no items with the selected labels at this time.