MEMSCAN
The MEMSCAN (MEM) service scans the specified storage areas for the specified character or hexadecimal string and displays the location of each occurrence of the string.
In addition, a symbol of the form @nn is created for each string occurrence until 99 symbols have been created. You can use these symbols in conjunction with the DUMP and ZAP services to display or modify the located data.
When 99 symbols have been created, MEMSCAN displays 64 bytes of storage containing the next occurrence of the string and then terminates. You can resume the scan to find the next occurrence by typing MEMSCAN without any operands. You can use an asterisk (*) to reference the address of the last occurrence of the string symbolically on the DUMP, EQUATE, and ZAP services.
Syntax
The parameters are defined as follows:
Parameter | Description |
---|---|
string | displays all character strings that are to be interpreted as uppercase and do not contain any special characters Enclose the value in single quotation marks if it contains lowercase or special characters. For example, ‘ABC,def’ is a seven-character string that begins with three uppercase characters, followed by a special character and three lowercase characters. Characters that are typed in lowercase but not enclosed in single quotation marks are converted to uppercase. |
X'string' | displays hexadecimal data Hexadecimal data must be enclosed in single quotation marks and preceded by an X; for example: X’C1C2C36BC4C5C6’. |
? | displays a map of storage depicting the various areas within the address space |
@ | displays the symbols previously created by MEMSCAN |
* | represents the address of the last location set by one of several services Typing an asterisk is equivalent to entering the address as a hexadecimal string. See Example 1. |
Null | omitting all parameters or omitting the first parameter causes MEMSCAN to resume an interrupted search |
area | subsequent parameters (2nd through 10th) as described in the Area keywords section |
RFIND | finds a previous scan |
Area keywords
Any of the following keywords can be specified in any sequence, separated by commas or blanks. Only the first three letters of each keyword are required. Area keywords are cumulative in their effect. If an area keyword is not specified, the default is COMMON.
Keyword | Description |
---|---|
REMOVE | causes any previously created symbols of the format @nn to be deleted prior to starting the scan (where nn is 01 through 99) |
DUMP | causes MEMSCAN to display 64 bytes of storage surrounding each occurrence of the string |
ABOVE | scans all storage above the 16-megabyte line |
ALL | scans all storage (0 through 7FFFFFFF) |
BELOW | scans storage below the 16-megabyte line |
COMMON | scans common storage, which comprises CSA, ECSA, SQA, and ESQA; the PSA, LPA, and nucleus area, although in common storage, are excluded |
CSA | scans the Common Service Area (CSA) located below the 16-megabyte line |
ECSA | scans the Extended Common Service Area |
EFLPA | scans the Extended Fixed Link-Pack Area |
EMLPA | scans the Extended Modified Link-Pack Area |
EPLPA | scans the Extended Pageable Link-Pack Area |
EPVT | scans the Extended Private area Scans only the private area of the address space within which the SYSPROG Services service is executing. |
ERONUC | scans the Extended read-only nucleus |
ERWNUC | scans the Extended read/write nucleus |
ESQA | scans the Extended System Queue Area |
FLPA | scans the Fixed Link-Pack Area |
LPA | scans the entire Link-Pack Area, including FLPA, MLPA, PLPA, EFLPA, EMLPA, and EPLPA |
MLPA | scans the Modified Link-Pack Area (below the 16-megabyte line) |
NUCLEUS | scans the entire nucleus, including RWNUC, RONUC, ERWNUC, and ERONUC |
PLPA | scans the Pageable Link-Pack Area (below the 16-megabyte line) |
PRIVATE | scans private storage, both below and above the 16-megabyte line |
PSA | scans the Prefixed Save Area |
PVT | scans private storage below the 16-megabyte line |
RONUC | scans the read-only nucleus below the 16-megabyte line |
RWNUC | scans the read/write nucleus below the 16-megabyte line |
SQA | scans the System Queue Area below the 16-megabyte line |
Example 1
To locate vectors to IGGPOST0, type
LPA,IGGPOST0
AMTL41I MODULE=IGGPOST0 < EPLPA >
AMTL42I LA=030ADF38 EP=00AF72F8 (AMODE-31 ) LEN=000008
AMTL43I LPDE=00C43588
AMT001A SYSPROG
memscan,*
[2]
AMTVS8I SEARCHING FOR X' '
AMTVSWS WILL BE SCANNING: CSA 00800000-00B97FFF
AMTVSWS WILL BE SCANNING: SQA 00EBE000-00FC9FFF
AMTVSWS WILL BE SCANNING: EXTSQA 016D2000-020AFFFF
AMTVSWS WILL BE SCANNING: EXT-CSA 043D4000-07FFFFFF
AMTVSNN SCANNING: CSA 00800000-00B97FFF
AMTVSNN SCANNING: SQA 00EBE000-00FC9FFF
AMTVS9I STRING FOUND AT 00C435AC IN SQA @01
AMTVSNN SCANNING: EXTSQA 016D2000-020AFFFF
AMTVSNN SCANNING: EXT-CSA 043D4000-07FFFFFF
AMTVSSI SEARCH STOPPED AT THE END OF THE AREA (07FFFFFF)
AMT001A SYSPROG
dump,@01-20 [3]
AMTC12I 00C4358C 00 00000000 C9C7C7D7 D6E2E3F0 80AF72F8 *....IGGPOST0...8*
AMTC12I 00C4359C 00000000 00001800 B1220000 00000008 *................*
AMTC12I 00C435AC 030ADF38 00C436C8 00000000 C9C6C7F0 *.....D.H....IFG0*
AMTC12I 00C435BC F2F0F0D5 8261A458 00000000 00001800 *200Nb.u.........*
Legend:
- First, the LPA service is used to locate the start of IGGPOST0.
- Then, MEMSCAN is used to search common storage for the address of IGGPOST0.
- Finally, the DUMP service is used to display the storage area containing the located address constant.
Example 2
To produce a memory map, type
MEM,?
AMTVSH2 AREA TITLE START END MEMSCAN ABBR.
AMTVSLN -----------------------------
AMTVSAI PSA 00000000 00001000 PSA
AMTVSAI PRIVATE 00001000 007FFFFF PVT
AMTVSAI CSA 00800000 00B97FFF CSA
AMTVSAI MLPA 00B98000 00C2FFFF MLPA
AMTVSAI PLPA 00C30000 00EBDFFF PLPA
AMTVSAI SQA 00EBE000 00FC9FFF SQA
AMTVSAI NUC R/W 00FCA000 00FD9FFF RWNUC
AMTVSAI NUC R/O 00FDA000 00FFFFFF RONUC
AMTVSAI EXT-NUC R/O 01000000 01466FFF ERONUC
AMTVSAI EXT-NUC R/W 01467000 016D1FFF ERWNUC
AMTVSAI EXTSQA 016D2000 020AFFFF ESQA
AMTVSAI EXT-PLPA 020B0000 043B9FFF EPLPA
AMTVSAI EXT-FLPA 043BA000 043BCFFF EFLPA
AMTVSAI EXT-MLPA 043BD000 043D3FFF EMLPA
AMTVSAI EXT-CSA 043D4000 07FFFFFF ECSA
AMTVSAI EXT-PRIVATE 08000000 7FFFFFFF EPVT
Example 3
To scan all storage for a hexadecimal string and display each occurrence, type
MEM,X'00AF72F8',DUMP,ALL
AMTVSWS WILL BE SCANNING: ALL STORAGE
AMTVSNN SCANNING: PRIVATE 00001000-007FFFF
AMTVSNN SCANNING: CSA 00800000-00B97FFF
AMTVS9I STRING FOUND AT 00AF7384 IN CSA @01 AMTVSLN -----------------------------------------------------------------
AMTVS5I 00AF7380 +04 F1000080 00AF72F8 00AF73B8 00AFAF80 *1 8 *
AMTVS5I 00AF7390 00000000 00000000 00000000 00000000 * *
AMTVS5I 00AF73A0 00000000 00000000 00000000 00000000 * *
AMTVS5I 00AF73B0 00000000 00000000 00AF9140 0751FE40 * j *
AMTVSNN SCANNING: MLPA 00B98000-00C2FFFF
AMTVSNN SCANNING: PLPA 00C30000-00EBDFFF
AMTVSNN SCANNING: SQA 00EBE000-00FC9FFF
AMTVSNN SCANNING: NUC R/W 00FCA000-00FD9FFF
AMTVSNN SCANNING: NUC R/O 00FDA000-00FFFFFF
AMTVSNN SCANNING: EXT-NUC R/O 01000000-01466FFF
AMTVSNN SCANNING: EXT-NUC R/W 01467000-016D1FFF
AMTVSNN SCANNING: EXTSQA 016D2000-020AFFFF
AMTVS9I STRING FOUND AT 01B2E0AC IN EXTSQA @02
AMTVSLN -----------------------------------------------------------------
AMTVS5I 01B2E0A0 +0C 01B2FFA0 AD626E17 01BD9130 00AF72F8 * > j 8*
AMTVS5I 01B2E0B0 00000080 8000A1E3 01B2E0A0 AD626E17 * T : > *
AMTVS5I 01B2E0C0 01BD9130 00AF72B8 00000040 8000A0DB * j *
AMTVS5I 01B2E0D0 01AFA1F0 AD6300B7 01A84958 07624020 * 0 y *
AMTVSNN SCANNING: EXT-PLPA 020B0000-043B9FFF
AMTVSNN SCANNING: EXT-FLPA 043BA000-043BCFFF
AMTVSNN SCANNING: EXT-MLPA 043BD000-043D3FFF
AMTVSNN SCANNING: EXT-CSA 043D4000-07FFFFFF
AMTVSNN SCANNING: EXT-PRIVATE 08000000-7FFFFFFF
AMTVSSI SEARCH STOPPED AT THE END OF THE AREA (7FFFFFFF)
Usage notes
- You can omit previously typed parameters if you do not want to change them. For example, if you had previously typed MEMSCAN TEXT PRIVATE (which searches for the string TEXT in private storage), you can search for the string TEXT in common storage by typing MEMSCAN,COMMON.
- The ATTENTION key interrupts MEMSCAN and saves all current values. The scan can be resumed at the point of interruption by typing MEMSCAN REFIND or just MEMSCAN.
- Do not embed blanks in the search string.
Related topic