[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/43] windbg: added helper features
From: |
Alistair Francis |
Subject: |
Re: [Qemu-devel] [PATCH 05/43] windbg: added helper features |
Date: |
Tue, 26 Sep 2017 10:13:00 -0700 |
On Tue, Sep 26, 2017 at 4:04 AM, Mihail Abakumov
<address@hidden> wrote:
> Added some helper features for windbgstub.
>
> 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 | 46
> +++++++++++++++++++++++++++++++++++++++
> include/exec/windbgstub.h | 3 +++
> windbgstub.c | 1 +
> 3 files changed, 50 insertions(+)
>
> diff --git a/include/exec/windbgstub-utils.h b/include/exec/windbgstub-utils.h
> index 2390597f1f..65f336e4bf 100755
> --- a/include/exec/windbgstub-utils.h
> +++ b/include/exec/windbgstub-utils.h
> @@ -13,7 +13,53 @@
> #define WINDBGSTUB_UTILS_H
>
> #include "qemu/osdep.h"
> +#include "qemu/error-report.h"
> +#include "cpu.h"
> #include "exec/windbgstub.h"
> #include "exec/windbgkd.h"
>
> +#ifndef TARGET_I386
> +#error Unsupported Architecture
> +#endif
> +#ifdef TARGET_X86_64 /* Unimplemented yet */
> +#error Unsupported Architecture
> +#endif
> +
> +#if (WINDBG_DEBUG_ON)
> +
> +# define WINDBG_DEBUG(...) do { \
> + printf("Debug: " __VA_ARGS__); \
> + printf("\n"); \
> +} while (false)
> +
> +# define WINDBG_ERROR(...) do { \
> + printf("Error: " __VA_ARGS__); \
> + printf("\n"); \
> +} while (false)
Use qemu_log() instead of printf().
Have a look as some other files for the usual way we handle debug printing.
> +
> +#else
> +
> +# define WINDBG_DEBUG(...)
> +# define WINDBG_ERROR(...) error_report(WINDBG ": " __VA_ARGS__)
> +
> +#endif
> +
> +#define FMT_ADDR "addr:0x" TARGET_FMT_lx
> +#define FMT_ERR "Error:%d"
> +
> +#define UINT8_P(ptr) ((uint8_t *) (ptr))
> +#define UINT32_P(ptr) ((uint32_t *) (ptr))
> +#define FIELD_P(type, field, ptr) ((typeof_field(type, field) *) (ptr))
> +#define PTR(var) UINT8_P(&var)
> +
> +#define M64_SIZE sizeof(DBGKD_MANIPULATE_STATE64)
> +
> +#define sizeof_field(type, field) sizeof(((type *) NULL)->field)
> +
> +#define READ_VMEM(cpu, addr, type) ({ \
> + type _t; \
> + cpu_memory_rw_debug(cpu, addr, PTR(_t), sizeof(type), 0); \
> + _t; \
> +})
> +
> #endif
> diff --git a/include/exec/windbgstub.h b/include/exec/windbgstub.h
> index 1a6e1cc6e5..703fc26b8f 100755
> --- a/include/exec/windbgstub.h
> +++ b/include/exec/windbgstub.h
> @@ -12,6 +12,9 @@
> #ifndef WINDBGSTUB_H
> #define WINDBGSTUB_H
>
> +#define WINDBG "windbg"
> +#define WINDBG_DEBUG_ON false
You should have a check here to see if the user has already set
WINDBG_DEBUG_ON to allow people to set it during build time.
Thanks,
Alistair
> +
> int windbg_server_start(const char *device);
>
> #endif
> diff --git a/windbgstub.c b/windbgstub.c
> index 4951f59203..3830446988 100755
> --- a/windbgstub.c
> +++ b/windbgstub.c
> @@ -11,6 +11,7 @@
>
> #include "qemu/osdep.h"
> #include "exec/windbgstub.h"
> +#include "exec/windbgstub-utils.h"
>
> int windbg_server_start(const char *device)
> {
>
>
- [Qemu-devel] [PATCH 00/43] Windbg supporting, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 01/43] windbg: added empty windbgstub files, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 02/43] windbg: added windbg's KD header file, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 03/43] windbg: modified windbgkd.h, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 04/43] windbg: added '-windbg' option, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 05/43] windbg: added helper features, Mihail Abakumov, 2017/09/26
- Re: [Qemu-devel] [PATCH 05/43] windbg: added helper features,
Alistair Francis <=
- [Qemu-devel] [PATCH 06/43] windbg: added WindbgState, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 07/43] windbg: added chardev, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 09/43] windbg: handler of fs/gs register, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 08/43] windbg: hook to wrmsr operation, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 10/43] windbg: structures for parsing data stream, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 12/43] windbg: send data and control packets, Mihail Abakumov, 2017/09/26
- [Qemu-devel] [PATCH 13/43] windbg: handler of parsing context, Mihail Abakumov, 2017/09/26