qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 18/46] windbg: implemented windbg_process_control


From: Mihail Abakumov
Subject: [Qemu-devel] [PATCH v4 18/46] windbg: implemented windbg_process_control_packet
Date: Mon, 11 Dec 2017 16:23:00 +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>
---
 windbgstub.c |   26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/windbgstub.c b/windbgstub.c
index 6eb9517e24..07a1815b79 100755
--- a/windbgstub.c
+++ b/windbgstub.c
@@ -129,7 +129,31 @@ static void windbg_process_data_packet(ParsingContext *ctx)
 {}
 
 static void windbg_process_control_packet(ParsingContext *ctx)
-{}
+{
+    switch (ctx->packet.PacketType) {
+    case PACKET_TYPE_KD_ACKNOWLEDGE:
+        break;
+
+    case PACKET_TYPE_KD_RESET:
+    {
+        SizedBuf buf = kd_gen_load_symbols_sc(qemu_get_cpu(0));
+        windbg_send_data_packet(buf.data, buf.size,
+                                PACKET_TYPE_KD_STATE_CHANGE64);
+        g_free(buf.data);
+
+        windbg_send_control_packet(ctx->packet.PacketType);
+        windbg_state->ctrl_packet_id = INITIAL_PACKET_ID;
+        break;
+    }
+    default:
+        WINDBG_ERROR("Caught unsupported control packet 0x%x",
+                     ctx->packet.PacketType);
+
+        windbg_state->ctrl_packet_id = 0;
+        windbg_send_control_packet(PACKET_TYPE_KD_RESEND);
+        break;
+    }
+}
 
 static void windbg_ctx_handler(ParsingContext *ctx)
 {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]