hotspot/agent/src/os/solaris/dbx/README-commands.txt
changeset 10864 17307b96ae38
parent 10779 5037da29fa26
parent 10762 cc1f5ce8e504
child 10865 7f8dd1713604
equal deleted inserted replaced
10779:5037da29fa26 10864:17307b96ae38
     1 This import module uses a largely text-based protocol, except for
       
     2 certain bulk data transfer operations. All text is in single-byte
       
     3 US-ASCII.
       
     4 
       
     5 Commands understood:
       
     6 
       
     7 address_size                  ::= <int result>
       
     8 
       
     9     Returns 32 if attached to 32-bit process, 64 if 64-bit.
       
    10 
       
    11 peek_fail_fast <bool arg>     ::=
       
    12 
       
    13     Indicates whether "peek" requests should "fail fast"; that is, if
       
    14     any of the addresses in the requested range are unmapped, report
       
    15     the entire range as unmapped. This is substantially faster than
       
    16     the alternative, which is to read the entire range byte-by-byte.
       
    17     However, it should only be used when it is guaranteed by the
       
    18     client application that peeks come from at most one page. The
       
    19     default is that peek_fast_fail is not enabled.
       
    20 
       
    21 peek <address addr> <unsigned int numBytes> ::=
       
    22     B<binary char success>
       
    23        [<binary unsigned int len> <binary char isMapped> [<binary char data>]...]...
       
    24 
       
    25     NOTE that the binary portion of this message is prefixed by the
       
    26     uppercase US-ASCII letter 'B', allowing easier synchronization by
       
    27     clients. There is no data between the 'B' and the rest of the
       
    28     message.
       
    29 
       
    30     May only be called once attached. Reads the address space of the
       
    31     target process starting at the given address (see below for format
       
    32     specifications) and extending the given number of bytes. Whether
       
    33     the read succeeded is indicated by a single byte containing a 1 or
       
    34     0 (success or failure). If successful, the return result is given
       
    35     in a sequence of ranges. _len_, the length of each range, is
       
    36     indicated by a 32-bit unsigned integer transmitted with big-endian
       
    37     byte ordering (i.e., most significant byte first).  _isMapped_
       
    38     indicates whether the range is mapped or unmapped in the target
       
    39     process's address space, and will contain the value 1 or 0 for
       
    40     mapped or unmapped, respectively. If the range is mapped,
       
    41     _isMapped_ is followed by _data_, containing the raw binary data
       
    42     for the range. The sum of all ranges' lengths is guaranteed to be
       
    43     equivalent to the number of bytes requested.
       
    44 
       
    45 poke <address addr> <int numBytes> B[<binary char data>]... ::= <bool result>
       
    46 
       
    47     NOTE that the binary portion of this message is prefixed by the
       
    48     uppercase US-ASCII letter 'B', allowing easier synchronization by
       
    49     clients. There is no data between the 'B' and the rest of the
       
    50     message.
       
    51 
       
    52     Writes the given data to the target process starting at the given
       
    53     address. Returns 1 on success, 0 on failure (i.e., one or more of
       
    54     target addresses were unmapped).
       
    55 
       
    56 mapped <address addr> <int numBytes> ::= <bool result>
       
    57 
       
    58     Returns 1 if entire address range [address...address + int arg) is
       
    59     mapped in target process's address space, 0 if not
       
    60 
       
    61 lookup <symbol objName> <symbol sym> ::= <address addr>
       
    62 
       
    63     First symbol is object name; second is symbol to be looked up.
       
    64     Looks up symbol in target process's symbol table and returns
       
    65     address. Returns NULL (0x0) if symbol is not found.
       
    66 
       
    67 thr_gregs <int tid>                  ::= <int numAddresses> <address...>
       
    68 
       
    69     Fetch the "general" (integer) register set for the given thread.
       
    70     Returned as a series of hexidecimal values. NOTE: the meaning of
       
    71     the return value is architecture-dependent. In general it is the
       
    72     contents of the prgregset_t.
       
    73 
       
    74 exit                                 ::=
       
    75 
       
    76     Exits the serviceability agent dbx module, returning control to
       
    77     the dbx prompt.
       
    78 
       
    79 // Data formats and example values:
       
    80 <address>      ::=   0x12345678[9ABCDEF0] /* up to 64-bit hex value */
       
    81 <unsigned int> ::=   5                    /* up to 32-bit integer number; no leading sign */
       
    82 <bool>         ::=   1                    /* ASCII '0' or '1' */