mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
more register values in monitor
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@751 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
4c27ba27c5
commit
57206fd42a
1 changed files with 22 additions and 2 deletions
24
monitor.c
24
monitor.c
|
@ -539,6 +539,13 @@ typedef struct MonitorDef {
|
||||||
int (*get_value)(struct MonitorDef *md);
|
int (*get_value)(struct MonitorDef *md);
|
||||||
} MonitorDef;
|
} MonitorDef;
|
||||||
|
|
||||||
|
#if defined(TARGET_I386)
|
||||||
|
static int monitor_get_pc (struct MonitorDef *md)
|
||||||
|
{
|
||||||
|
return cpu_single_env->eip + (long)cpu_single_env->segs[R_CS].base;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(TARGET_PPC)
|
#if defined(TARGET_PPC)
|
||||||
static int monitor_get_ccr (struct MonitorDef *md)
|
static int monitor_get_ccr (struct MonitorDef *md)
|
||||||
{
|
{
|
||||||
|
@ -582,6 +589,12 @@ static int monitor_get_xer (struct MonitorDef *md)
|
||||||
|
|
||||||
static MonitorDef monitor_defs[] = {
|
static MonitorDef monitor_defs[] = {
|
||||||
#ifdef TARGET_I386
|
#ifdef TARGET_I386
|
||||||
|
|
||||||
|
#define SEG(name, seg) \
|
||||||
|
{ name, offsetof(CPUState, segs[seg].selector) },\
|
||||||
|
{ name ".base", offsetof(CPUState, segs[seg].base) },\
|
||||||
|
{ name ".limit", offsetof(CPUState, segs[seg].limit) },
|
||||||
|
|
||||||
{ "eax", offsetof(CPUState, regs[0]) },
|
{ "eax", offsetof(CPUState, regs[0]) },
|
||||||
{ "ecx", offsetof(CPUState, regs[1]) },
|
{ "ecx", offsetof(CPUState, regs[1]) },
|
||||||
{ "edx", offsetof(CPUState, regs[2]) },
|
{ "edx", offsetof(CPUState, regs[2]) },
|
||||||
|
@ -591,7 +604,13 @@ static MonitorDef monitor_defs[] = {
|
||||||
{ "esi", offsetof(CPUState, regs[6]) },
|
{ "esi", offsetof(CPUState, regs[6]) },
|
||||||
{ "esi", offsetof(CPUState, regs[7]) },
|
{ "esi", offsetof(CPUState, regs[7]) },
|
||||||
{ "eflags", offsetof(CPUState, eflags) },
|
{ "eflags", offsetof(CPUState, eflags) },
|
||||||
{ "eip|pc", offsetof(CPUState, eip) },
|
{ "eip", offsetof(CPUState, eip) },
|
||||||
|
SEG("cs", R_CS)
|
||||||
|
SEG("ds", R_DS)
|
||||||
|
SEG("es", R_ES)
|
||||||
|
SEG("fs", R_FS)
|
||||||
|
SEG("gs", R_GS)
|
||||||
|
{ "pc", 0, monitor_get_pc, },
|
||||||
#elif defined(TARGET_PPC)
|
#elif defined(TARGET_PPC)
|
||||||
{ "r0", offsetof(CPUState, gpr[0]) },
|
{ "r0", offsetof(CPUState, gpr[0]) },
|
||||||
{ "r1", offsetof(CPUState, gpr[1]) },
|
{ "r1", offsetof(CPUState, gpr[1]) },
|
||||||
|
@ -625,6 +644,7 @@ static MonitorDef monitor_defs[] = {
|
||||||
{ "r29", offsetof(CPUState, gpr[29]) },
|
{ "r29", offsetof(CPUState, gpr[29]) },
|
||||||
{ "r30", offsetof(CPUState, gpr[30]) },
|
{ "r30", offsetof(CPUState, gpr[30]) },
|
||||||
{ "r31", offsetof(CPUState, gpr[31]) },
|
{ "r31", offsetof(CPUState, gpr[31]) },
|
||||||
|
{ "nip|pc", offsetof(CPUState, nip) },
|
||||||
{ "lr", offsetof(CPUState, lr) },
|
{ "lr", offsetof(CPUState, lr) },
|
||||||
{ "ctr", offsetof(CPUState, ctr) },
|
{ "ctr", offsetof(CPUState, ctr) },
|
||||||
{ "decr", offsetof(CPUState, decr) },
|
{ "decr", offsetof(CPUState, decr) },
|
||||||
|
@ -724,7 +744,7 @@ static int expr_unary(void)
|
||||||
while ((*pch >= 'a' && *pch <= 'z') ||
|
while ((*pch >= 'a' && *pch <= 'z') ||
|
||||||
(*pch >= 'A' && *pch <= 'Z') ||
|
(*pch >= 'A' && *pch <= 'Z') ||
|
||||||
(*pch >= '0' && *pch <= '9') ||
|
(*pch >= '0' && *pch <= '9') ||
|
||||||
*pch == '_') {
|
*pch == '_' || *pch == '.') {
|
||||||
if ((q - buf) < sizeof(buf) - 1)
|
if ((q - buf) < sizeof(buf) - 1)
|
||||||
*q++ = *pch;
|
*q++ = *pch;
|
||||||
pch++;
|
pch++;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue