[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 39/45] windbg: implemented kd_api_get_version
From: |
Ladi Prosek |
Subject: |
Re: [Qemu-devel] [PATCH v3 39/45] windbg: implemented kd_api_get_version |
Date: |
Wed, 29 Nov 2017 09:14:42 +0100 |
On Tue, Nov 21, 2017 at 3:10 PM, Mihail Abakumov
<address@hidden> wrote:
> Signed-off-by: Mihail Abakumov <address@hidden>
> Signed-off-by: Pavel Dovgalyuk <address@hidden>
> Signed-off-by: Dmitriy Koltunov <address@hidden>
> ---
> include/exec/windbgstub-utils.h | 1 +
> windbgstub-utils.c | 22 ++++++++++++++++++++++
> windbgstub.c | 4 ++++
> 3 files changed, 27 insertions(+)
>
> diff --git a/include/exec/windbgstub-utils.h b/include/exec/windbgstub-utils.h
> index be48f69f40..bc5b6a8468 100755
> --- a/include/exec/windbgstub-utils.h
> +++ b/include/exec/windbgstub-utils.h
> @@ -99,6 +99,7 @@ void kd_api_read_io_space(CPUState *cpu, PacketData *pd);
> void kd_api_write_io_space(CPUState *cpu, PacketData *pd);
> void kd_api_read_physical_memory(CPUState *cpu, PacketData *pd);
> void kd_api_write_physical_memory(CPUState *cpu, PacketData *pd);
> +void kd_api_get_version(CPUState *cpu, PacketData *pd);
> void kd_api_unsupported(CPUState *cpu, PacketData *pd);
>
> SizedBuf kd_gen_exception_sc(CPUState *cpu);
> diff --git a/windbgstub-utils.c b/windbgstub-utils.c
> index 6708e62798..7ef301bac7 100755
> --- a/windbgstub-utils.c
> +++ b/windbgstub-utils.c
> @@ -239,6 +239,28 @@ void kd_api_write_physical_memory(CPUState *cpu,
> PacketData *pd)
> stl_p(&mem->ActualBytesWritten, len);
> }
>
> +void kd_api_get_version(CPUState *cpu, PacketData *pd)
> +{
> + DBGKD_GET_VERSION64 *kdver;
> + int err = cpu_memory_rw_debug(cpu, version.addr, PTR(pd->m64) + 0x10,
> + sizeof(DBGKD_MANIPULATE_STATE64) - 0x10,
> 0);
> + if (!err) {
> + kdver = (DBGKD_GET_VERSION64 *) (PTR(pd->m64) + 0x10);
> +
> + stw_p(&kdver->MajorVersion, kdver->MajorVersion);
> + stw_p(&kdver->MinorVersion, kdver->MinorVersion);
> + stw_p(&kdver->Flags, kdver->Flags);
> + stw_p(&kdver->MachineType, kdver->MachineType);
> + stw_p(&kdver->Unused[0], kdver->Unused[0]);
> + sttul_p(&kdver->KernBase, kdver->KernBase);
> + sttul_p(&kdver->PsLoadedModuleList, kdver->PsLoadedModuleList);
> + sttul_p(&kdver->DebuggerDataList, kdver->DebuggerDataList);
> + } else {
> + pd->m64.ReturnStatus = STATUS_UNSUCCESSFUL;
The ReturnStatus field must be written using st* as well. You have
this direct write in many functions.
> + WINDBG_ERROR("get_version: " FMT_ERR, err);
> + }
> +}
> +
> void kd_api_unsupported(CPUState *cpu, PacketData *pd)
> {
> WINDBG_ERROR("Caught unimplemented api %s",
> diff --git a/windbgstub.c b/windbgstub.c
> index 72324ae53d..ddca290694 100755
> --- a/windbgstub.c
> +++ b/windbgstub.c
> @@ -197,6 +197,10 @@ static void
> windbg_process_manipulate_packet(ParsingContext *ctx)
> kd_api_write_physical_memory(cpu, &ctx->data);
> break;
>
> + case DbgKdGetVersionApi:
> + kd_api_get_version(cpu, &ctx->data);
> + break;
> +
> case DbgKdClearAllInternalBreakpointsApi:
> return;
>
>
- [Qemu-devel] [PATCH v3 31/45] windbg: implemented windbg_set_dr, (continued)
- [Qemu-devel] [PATCH v3 31/45] windbg: implemented windbg_set_dr, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 32/45] windbg: implemented windbg_set_dr7, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 33/45] windbg: implemented windbg_hw_breakpoint_insert and windbg_hw_breakpoint_remove, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 34/45] windbg: implemented kd_api_write_breakpoint and kd_api_restore_breakpoint, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 35/45] windbg: debug exception subscribing, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 36/45] windbg: implemented kd_api_continue, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 37/45] windbg: implemented kd_api_read_io_space and kd_api_write_io_space, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 38/45] windbg: implemented kd_api_read_physical_memory and kd_api_write_physical_memory, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 39/45] windbg: implemented kd_api_get_version, Mihail Abakumov, 2017/11/21
- Re: [Qemu-devel] [PATCH v3 39/45] windbg: implemented kd_api_get_version,
Ladi Prosek <=
- [Qemu-devel] [PATCH v3 40/45] windbg: implemented kd_api_read_msr and kd_api_write_msr, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 41/45] windbg: implemented kd_api_search_memory, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 42/45] windbg: implemented kd_api_fill_memory, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 43/45] windbg: implemented kd_api_query_memory, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 44/45] windbg: added new api functions, Mihail Abakumov, 2017/11/21
- [Qemu-devel] [PATCH v3 45/45] windbg: implemented kd_api_get_context_ex and kd_api_set_context_ex, Mihail Abakumov, 2017/11/21