|
|
Line 73: |
Line 73: |
| |} | | |} |
|
| |
|
| ┌────────────────────┬─────┬────────────────────┬────────┬────────┐
| |
| │Command │Code │Description │CVK_ │CVK_ │
| |
| │ │ │ │CMDSIZE_│RETSIZE_│
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RMEM │ 1 │Read memory │18 │20 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RREG │ 3 │Read registers │18 │24 + │
| |
| │ │ │ │ │sizeof( │
| |
| │ │ │ │ │RegSa_ │
| |
| │ │ │ │ │struc) │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_WMEM │ 4 │Write memory │20 │6 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_WREG │ 6 │Write registers │20 + │2 │
| |
| │ │ │ │sizeof( │ │
| |
| │ │ │ │RegSa_ │ │
| |
| │ │ │ │struc) │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RUN │ 7 │Resume execution │6 │0 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_KILL │ 8 │Reboot victim │2 │0 │
| |
| │ │ │machine │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_STEP │ 9 │Single step │2 │0 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_NUMTOBASE │13 │Get object/segment │14 │14 │
| |
| │ │ │information │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_LIBNAME │16 │Get module │6 │6 │
| |
| │ │ │information │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RAW │20 │Perform kernel │6 │ │
| |
| │ │ │debugger command │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_DBIT │22 │Get selector │20 │ │
| |
| │ │ │information │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RSTEP │23 │Range step │10 │0 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_SCANMTE │24 │Scan module table │2 │6 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_SCANTCB │25 │Scan thread control │6 │10 │
| |
| │ │ │blocks │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_SEL2LIN │26 │Convert │18 │6 │
| |
| │ │ │selector:offset to │ │ │
| |
| │ │ │linear address. │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_LIN2SEL │27 │Convert linear │18 │12 │
| |
| │ │ │address to │ │ │
| |
| │ │ │selector:offset. │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_OBJCOUNT │28 │Get number of │6 │6 │
| |
| │ │ │objects/segments in │ │ │
| |
| │ │ │module │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_SCANOBJ │29 │Scan object/segment │14 │10 │
| |
| │ │ │table │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_SELINFO │30 │Get selector │18 │20 │
| |
| │ │ │information │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_RNPX │31 │Read NPX state │18 │128 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_WNPX │32 │Write NPX state │128 │60 │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_ENA │33 │Enable optional │6 │2 │
| |
| │ │ │features │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_DIS │34 │Disable optional │6 │2 │
| |
| │ │ │features │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_PIREG │35 │Register for PAGEIN │14 │2 │
| |
| │ │ │notification │ │ │
| |
| ├────────────────────┼─────┼────────────────────┼────────┼────────┤
| |
| │CVK_CMD_PIDRG │36 │Deregister for │14 │2 │
| |
| │ │ │PAGEIN notification │ │ │
| |
| └────────────────────┴─────┴────────────────────┴────────┴────────┘
| |
| ;Value:Value, command dependent. | | ;Value:Value, command dependent. |
| ;OffV:Command dependent, usually a linear address. | | ;OffV:Command dependent, usually a linear address. |
Data associated with the kernel debugger communications protocol.
Type
USHORT Cmd
ULONG Value
ULONG OffV
USHORT SegV
USHORT MTE
USHORT PID
USHORT TID
USHORT DBit
RegSA_struc Reg
UCHAR MemCache
C Declaration Method
typedef struct
Fields
- Cmd
- Command, One of the following:
Command |
Code |
Description |
CVK_CMDSIZE_ |
CVK_RETSIZE_
|
CVK_CMD_RMEM |
1 |
Read memory |
18 |
20
|
CVK_CMD_RREG |
3 |
Read registers |
18 |
24 + sizeof( RegSa_ struc)
|
CVK_CMD_WMEM |
4 |
Write memory |
20 |
6
|
CVK_CMD_WREG |
6 |
Write registers |
20 + sizeof( RegSa_ struc) |
2
|
CVK_CMD_RUN |
7 |
Resume execution |
6 |
0
|
CVK_CMD_KILL |
8 |
Reboot victim machine |
2 |
0
|
CVK_CMD_STEP |
9 |
Single step |
2 |
0
|
CVK_CMD_NUMTOBASE |
13 |
Get object/segment information |
14 |
14
|
CVK_CMD_LIBNAME |
16 |
Get module information |
6 |
6
|
CVK_CMD_RAW |
20 |
Perform kernel debugger command |
6 |
|
CVK_CMD_DBIT |
22 |
Get selector information |
20 |
|
CVK_CMD_RSTEP |
23 |
Range step |
10 |
0
|
CVK_CMD_SCANMTE |
24 |
Scan module table |
2 |
6
|
CVK_CMD_SCANTCB |
25 |
Scan thread control blocks |
6 |
10
|
CVK_CMD_SEL2LIN |
26 |
Convert selector:offset to linear address. |
18 |
6
|
CVK_CMD_LIN2SEL |
27 |
Convert linear address to selector:offset. |
18 |
12
|
CVK_CMD_OBJCOUNT |
28 |
Get number of objects/segments in module |
6 |
6
|
CVK_CMD_SCANOBJ |
29 |
Scan object/segment table |
14 |
10
|
CVK_CMD_SELINFO |
30 |
Get selector information |
18 |
20
|
CVK_CMD_RNPX |
31 |
Read NPX state |
18 |
128
|
CVK_CMD_WNPX |
32 |
Write NPX state |
128 |
60
|
CVK_CMD_ENA |
33 |
Enable optional features |
6 |
2
|
CVK_CMD_DIS |
34 |
Disable optional features |
6 |
2
|
CVK_CMD_PIREG |
35 |
Register for PAGEIN notification |
14 |
2
|
CVK_CMD_PIDRG |
36 |
Deregister for PAGEIN notification |
14 |
2
|
- Value
- Value, command dependent.
- OffV
- Command dependent, usually a linear address.
- SegV
- Command dependent. Usually slot number of thread.
- MTE
- Module Table Entry
- PID
- Process Identifier
- TID
- Thread Identifier
- DBit
- Flags from the CS selector.
- Reg
- Register save area
MemCache Data area used for variable length data in a command or response. Maximum size of the data is CVK_MEMCACHE_SIZE (512).