di dump instructions\n\
df dump float values\n\
dd dump double values\n\
- dr dump stream of raw bytes\n\
e print exception information\n\
f flush cache\n\
la lookup symbol+offset of specified address\n\
return c;
}
-static void xmon_rawdump (unsigned long adrs, long ndump)
-{
- long n, m, r, nr;
- unsigned char temp[16];
-
- for (n = ndump; n > 0;) {
- r = n < 16? n: 16;
- nr = mread(adrs, temp, r);
- adrs += nr;
- for (m = 0; m < r; ++m) {
- if (m < nr)
- printf("%.2x", temp[m]);
- else
- printf("%s", fault_chars[fault_type]);
- }
- n -= r;
- if (nr < r)
- break;
- }
- printf("\n");
-}
-
#define isxdigit(c) (('0' <= (c) && (c) <= '9') \
|| ('a' <= (c) && (c) <= 'f') \
|| ('A' <= (c) && (c) <= 'F'))
nidump = MAX_DUMP;
adrs += ppc_inst_dump(adrs, nidump, 1);
last_cmd = "di\n";
- } else if (c == 'r') {
- scanhex(&ndump);
- if (ndump == 0)
- ndump = 64;
- xmon_rawdump(adrs, ndump);
- adrs += ndump;
- last_cmd = "dr\n";
} else {
scanhex(&ndump);
if (ndump == 0)