If an address is given that is known by SCODB to be a structure or union, it will automatically change it field by field. This can be overided by typecasting the address to (char *). For example:
debug0:1>Commands can be given to change location and value of memory:
c (char *)&u
|<Space>||move right one digit in field|
|j||move to next line|
|k||move to previous line|
|h||move to previous field|
|l, <Tab>||move to next field|
|<Bksp>||move left one digit in field, or to last field|
|hexadecimal digit||change current digit|
|<Esc>||enter calculator-input mode|
|u||undo last digit-change|
|U||undo all changes to current field|
|<Return> or quit character (other than <Esc>)||exit change mode|
Entering an <Esc> allows the user to give input to the SCODB calculator so that complex address expressions can be entered as value for the field:
c &init_tblinit_tbl D0089368 D009C544 D007E09C D0085CBC h...D.......... init_tbl+10 D0083F3C D008265C D00863A8 D00826C8 <?.....c...&.. Value:
To exit the change mode, enter a newline or quit character other than <Esc>.
A <Tab> advances the cursor to the next cell, while a <Bksp> entered at the beginning (left) of a cell causes the cursor to go to the beginning of the previous cell.
A space advances to the next digit, up to the end of the cell (the right side), with no modification to the contents. Incorrect entry is signaled by a bell.