__MVDBGINFO()
This function returns the information about the variables for debugger
- Syntax
- __MVDBGINFO( <nScope> [, <nPosition> [, @<cVarName>] ] )
- Arguments
- <nScope> = the scope of variables for which an information is asked Supported values (defined in hbmemvar.ch) HB_MV_PUBLIC HB_MV_PRIVATE (or any other value) <nPosition> = the position of asked variable on the list of variables with specified scope - it should start from position 1 <cVarName> = the value is filled with a variable name if passed by reference and <nPosition> is specified
- Returns
- The return value depends on the number of arguments passed
- Description
- This function retrieves the information about memvar variables. It returns either the number of variables with given scope (when the first argument is passed only) or a value of variable identified by its position in the variables' list (when second argument is passed). It also returns the name of a variable if optional third argument is passed by reference.
- If requested variable doesn't exist (requested position is greater then the number of defined variables) then NIL value is returned and variable name is set to "?"
- The dynamic symbols table is used to find a PUBLIC variable then the PUBLIC variables are always sorted alphabetically. The PRIVATE variables are sorted in the creation order.
- Note: Due to dynamic nature of memvar variables there is no guarantee that successive calls to retrieve the value of PUBLIC variable will return the value of the same variable.
- Examples
- #include
- LOCAL nCount, i, xValue, cName
- nCount =_mvDBGINFO( HB_MV_PUBLIC )
- FOR i:=1 TO nCount
- xValue =__mvDBGINFO( HB_MV_PUBLIC, i, @cName )
- ? i, cName, xValue
- NEXT
- Tests
- #include
- PROCEDURE MAIN()
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- PUBLIC cPublic:='cPublic in MAIN'
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- PRIVATE cPrivate:='cPrivate in MAIN'
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- CountMemvars()
- ? 'Back in Main'
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- RETURN
- PROCEDURE CountMemvars()
- LOCAL i, nCnt, xVal, cName
- PUBLIC ccPublic:='ccPublic'
- PRIVATE ccPrivate:='ccPrivate'
- ? 'In CountMemvars'
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- PRIVATE cPublic:='cPublic'
- ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
- ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
- nCnt =__mvDBGINFO( HB_MV_PRIVATE ) +1
- FOR i:=1 TO nCnt
- xVal =__mvDBGINFO( HB_MV_PRIVATE, i, @cName )
- ? i, '=', cName, xVal
- NEXT
- nCnt =__mvDBGINFO( HB_MV_PUBLIC ) +1
- FOR i:=1 TO nCnt
- xVal =__mvDBGINFO( HB_MV_PUBLIC, i, @cName )
- ? i, '=', cName, xVal
- NEXT
- RETURN
- Status
Ready
- Compliance
- This function should be called from the debugger only.
- Files
- Library is vm