[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 28/43] windbg: implemented windbg_read_ks_regs
From: |
Mihail Abakumov |
Subject: |
[Qemu-devel] [PATCH v2 28/43] windbg: implemented windbg_read_ks_regs |
Date: |
Tue, 17 Oct 2017 16:11:29 +0300 |
User-agent: |
StGit/0.17.1-dirty |
Signed-off-by: Mihail Abakumov <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Signed-off-by: Dmitriy Koltunov <address@hidden>
---
target/i386/windbgstub.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/target/i386/windbgstub.c b/target/i386/windbgstub.c
index 490dadbae1..b22584a45a 100755
--- a/target/i386/windbgstub.c
+++ b/target/i386/windbgstub.c
@@ -594,6 +594,45 @@ static int windbg_write_context(CPUState *cpu, uint8_t
*buf, int buf_size,
static int windbg_read_ks_regs(CPUState *cpu, uint8_t *buf, int buf_size,
int offset, int len)
{
+ CPUArchState *env = cpu->env_ptr;
+ CPU_KSPECIAL_REGISTERS *ckr;
+ bool new_mem;
+
+ new_mem = (len != sizeof(CPU_KSPECIAL_REGISTERS) || offset != 0);
+ if (new_mem) {
+ ckr = g_new(CPU_KSPECIAL_REGISTERS, 1);
+ } else {
+ ckr = (CPU_KSPECIAL_REGISTERS *) buf;
+ }
+
+ memset(ckr, 0, len);
+
+ ckr->Cr0 = ldl_p(&env->cr[0]);
+ ckr->Cr2 = ldl_p(&env->cr[2]);
+ ckr->Cr3 = ldl_p(&env->cr[3]);
+ ckr->Cr4 = ldl_p(&env->cr[4]);
+
+ ckr->KernelDr0 = ldtul_p(&env->dr[0]);
+ ckr->KernelDr1 = ldtul_p(&env->dr[1]);
+ ckr->KernelDr2 = ldtul_p(&env->dr[2]);
+ ckr->KernelDr3 = ldtul_p(&env->dr[3]);
+ ckr->KernelDr6 = ldtul_p(&env->dr[6]);
+ ckr->KernelDr7 = ldtul_p(&env->dr[7]);
+
+ ckr->Gdtr.Pad = lduw_p(&env->gdt.selector);
+ ckr->Idtr.Pad = lduw_p(&env->idt.selector);
+
+ ckr->Gdtr.Limit = lduw_p(&env->gdt.limit);
+ ckr->Gdtr.Base = ldtul_p(&env->gdt.base);
+ ckr->Idtr.Limit = lduw_p(&env->idt.limit);
+ ckr->Idtr.Base = ldtul_p(&env->idt.base);
+ ckr->Tr = lduw_p(&env->tr.selector);
+ ckr->Ldtr = lduw_p(&env->ldt.selector);
+
+ if (new_mem) {
+ memcpy(buf, (uint8_t *) ckr + offset, len);
+ g_free(ckr);
+ }
return 0;
}
- [Qemu-devel] [PATCH v2 18/43] windbg: windbg_vm_stop, (continued)
- [Qemu-devel] [PATCH v2 18/43] windbg: windbg_vm_stop, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 19/43] windbg: implemented windbg_process_control_packet, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 21/43] windbg: implemented windbg_process_manipulate_packet, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 20/43] windbg: implemented windbg_process_data_packet, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 22/43] windbg: implemented kd_api_read_virtual_memory and kd_api_write_virtual_memory, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 23/43] windbg: kernel's structures, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 24/43] windbg: implemented kd_api_get_context and kd_api_set_context, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 25/43] windbg: implemented kd_api_read_control_space and kd_api_write_control_space, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 26/43] windbg: implemented windbg_read_context, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 27/43] windbg: implemented windbg_write_context, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 28/43] windbg: implemented windbg_read_ks_regs,
Mihail Abakumov <=
- [Qemu-devel] [PATCH v2 29/43] windbg: implemented windbg_write_ks_regs, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 30/43] windbg: implemented windbg_set_sr, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 31/43] windbg: implemented windbg_set_dr, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 32/43] windbg: implemented windbg_set_dr7, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 33/43] windbg: implemented windbg_hw_breakpoint_insert and windbg_hw_breakpoint_remove, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 34/43] windbg: implemented kd_api_write_breakpoint and kd_api_restore_breakpoint, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 35/43] windbg: debug exception subscribing, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 36/43] windbg: implemented kd_api_continue, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 37/43] windbg: implemented kd_api_read_io_space and kd_api_write_io_space, Mihail Abakumov, 2017/10/17
- [Qemu-devel] [PATCH v2 38/43] windbg: implemented kd_api_read_physical_memory and kd_api_write_physical_memory, Mihail Abakumov, 2017/10/17