Jump to content

KernelDebugRef - Unary Operators

From EDM2

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

Kernel Debugger Reference
  1. Introduction
  2. Installing the Kernel Debugger
  3. The T Terminal Emulator
  4. Entering the Debugger
  5. Expressions
  6. Operator Precedence
  7. Binary Operators
  8. Unary Operators
  9. Numbers
  10. Strings
  11. Symbol Files
  12. Using Kernel Debugger Commands
  13. The Breakpoint (BP) Command
  14. Breakpoint Commands
  15. External Commands
  16. Using Default Commands
  17. External Debugger Commands
  18. Setting Useful Breakpoints
  19. Debugging Kernel Device Drivers
  20. Debugging VM Start Sessions
  21. Debugging a Remote System
  22. Notices

The following operators expect a single argument.

Ranges are an address and either a length or an end. 4544:0 L5 is address (4544:0) and a length of 5 objects. If you are dumping words, 5 words are dumped. #8:32 50 is a range of bytes from address 8:32 to and including 8:50.

Note: For <ranges>, if the second address has a unary operator such as . or #, then it must be separated by a comma from the first. Parentheses work as well, for example:

  • db ds:40,%40000 Correct
  • db ds:40 (%40000) Correct
  • db ds:40 %40000 Incorrect

These results are caused by the way in which the expression evaluator parses the input.

  • | Task number/address operator
  • . Address type is segment:offset
  • # Address type is selector:offset
  • % Address type is linear
  • %% Address type is physical
  • - Two's complement
  • ! Logical NOT operator
  • NOT Bitwise one's complement
  • SEG Returns the segment portion
  • OFF Returns the offset portion
  • BY 1-byte value from the address
  • WO 2-byte value from the address
  • DW 4-byte value from the address
  • POI 4-byte address from the address
  • PORT 1-byte value from an 8-bit I/O port
  • WPORT 2-byte value from a 16-bit I/O port