Added function for generate LoadSymbolsStateChange packet. Signed-off-by: Mihail Abakumov <mikhail.abaku...@ispras.ru> Signed-off-by: Pavel Dovgalyuk <dovga...@ispras.ru> Signed-off-by: Dmitriy Koltunov <koltu...@ispras.ru> --- include/exec/windbgstub-utils.h | 1 + windbgstub-utils.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+)
diff --git a/include/exec/windbgstub-utils.h b/include/exec/windbgstub-utils.h index 0b859cd6a8..25e8458b4e 100755 --- a/include/exec/windbgstub-utils.h +++ b/include/exec/windbgstub-utils.h @@ -103,6 +103,7 @@ typedef struct SizedBuf { } while (false) SizedBuf kd_gen_exception_sc(CPUState *cpu); +SizedBuf kd_gen_load_symbols_sc(CPUState *cpu); bool windbg_on_load(void); void windbg_on_exit(void); diff --git a/windbgstub-utils.c b/windbgstub-utils.c index 48d09ff424..7d93f62d16 100755 --- a/windbgstub-utils.c +++ b/windbgstub-utils.c @@ -102,6 +102,22 @@ SizedBuf kd_gen_exception_sc(CPUState *cpu) return buf; } +SizedBuf kd_gen_load_symbols_sc(CPUState *cpu) +{ + SizedBuf buf; + SBUF_MALLOC(buf, sizeof(DBGKD_ANY_WAIT_STATE_CHANGE)); + + DBGKD_ANY_WAIT_STATE_CHANGE *sc = (DBGKD_ANY_WAIT_STATE_CHANGE *) buf.data; + kd_init_state_change(cpu, sc); + + sc->NewState = DbgKdLoadSymbolsStateChange; + sc->NewState = ldl_p(&sc->NewState); + + sc->u.LoadSymbols.PathNameLength = 0; + + return buf; +} + bool windbg_on_load(void) { CPUState *cpu = qemu_get_cpu(0);