Welcome to the Harris Geospatial product documentation center. Here you will find reference guides, help documents, and product libraries.

  >  Docs Center  >  IDL Reference  >  Programming and Control  >  SHMDEBUG



The SHMDEBUG function enables a debugging mode in which IDL prints an informational message (including a traceback) every time a variable created with the SHMVAR function loses its reference to the underlying memory segment created by. There are many reasons why a such a variable might lose its reference; some reasons have to do with the internal implementation of the IDL interpreter and are not obvious or visible to the IDL user.

Note: The SHMDEBUG debugging mode should be used for problem solving only, and should not be part of production code.


Create a memory segment, tie a variable to it, enable debugging, and then cause the variable to lose the reference:

old_debug = SHMDEBUG(1) ; Enable debug mode
SHMMAP, 'A', 100 ; 100 element floating vector
z = SHMVAR('A') ; Variable tied to segment
z[0] = FINDGEN(100) ; Does not lose reference
z = FINDGEN(100) ; Loses reference

IDL returns:

% Variable released shared memory segment: A
% Released at: $MAIN$

The assignment z[0] = FINDGEN(100) explicitly uses subscripting to assign the FINDGEN value to the array. Under normal circumstances, using subscripting in this way on the left hand side of an assignment is inefficient and not recommended. In this case, however, it has the desirable side effect of causing the variable Z to maintain its connection to its existing underlying memory. In contrast, the second (normally more desirable) assignment without the subscript causes IDL to allocate different memory for the variable Z, with the side effect of losing the connection to the shared memory segment.


Result = SHMDEBUG(Enable)

Return Value

SHMDEBUG returns the previous setting of the debugging state.



Set this argument equal to a non-zero value to enable debugging, or to zero to disable debugging.



Version History



See Also


© 2018 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us