diff --git a/programs/winedbg/be_arm64.c b/programs/winedbg/be_arm64.c index ce7be7ca734..50f3ad9084b 100644 --- a/programs/winedbg/be_arm64.c +++ b/programs/winedbg/be_arm64.c @@ -32,7 +32,7 @@ static BOOL be_arm64_get_addr(HANDLE hThread, const dbg_ctx_t *ctx, case be_cpu_addr_stack: return be_cpu_build_addr(hThread, ctx, addr, 0, ctx->ctx.Sp); case be_cpu_addr_frame: - return be_cpu_build_addr(hThread, ctx, addr, 0, ctx->ctx.u.s.Fp); + return be_cpu_build_addr(hThread, ctx, addr, 0, ctx->ctx.Fp); break; } return FALSE; @@ -81,19 +81,19 @@ static void be_arm64_print_context(HANDLE hThread, const dbg_ctx_t *ctx, int all buf[i] = '-'; dbg_printf(" Pc:%016I64x Sp:%016I64x Lr:%016I64x Cpsr:%08lx(%s)\n", - ctx->ctx.Pc, ctx->ctx.Sp, ctx->ctx.u.s.Lr, ctx->ctx.Cpsr, buf); + ctx->ctx.Pc, ctx->ctx.Sp, ctx->ctx.Lr, ctx->ctx.Cpsr, buf); dbg_printf(" x0: %016I64x x1: %016I64x x2: %016I64x x3: %016I64x x4: %016I64x\n", - ctx->ctx.u.s.X0, ctx->ctx.u.s.X1, ctx->ctx.u.s.X2, ctx->ctx.u.s.X3, ctx->ctx.u.s.X4); + ctx->ctx.X0, ctx->ctx.X1, ctx->ctx.X2, ctx->ctx.X3, ctx->ctx.X4); dbg_printf(" x5: %016I64x x6: %016I64x x7: %016I64x x8: %016I64x x9: %016I64x\n", - ctx->ctx.u.s.X5, ctx->ctx.u.s.X6, ctx->ctx.u.s.X7, ctx->ctx.u.s.X8, ctx->ctx.u.s.X9); + ctx->ctx.X5, ctx->ctx.X6, ctx->ctx.X7, ctx->ctx.X8, ctx->ctx.X9); dbg_printf(" x10:%016I64x x11:%016I64x x12:%016I64x x13:%016I64x x14:%016I64x\n", - ctx->ctx.u.s.X10, ctx->ctx.u.s.X11, ctx->ctx.u.s.X12, ctx->ctx.u.s.X13, ctx->ctx.u.s.X14); + ctx->ctx.X10, ctx->ctx.X11, ctx->ctx.X12, ctx->ctx.X13, ctx->ctx.X14); dbg_printf(" x15:%016I64x ip0:%016I64x ip1:%016I64x x18:%016I64x x19:%016I64x\n", - ctx->ctx.u.s.X15, ctx->ctx.u.s.X16, ctx->ctx.u.s.X17, ctx->ctx.u.s.X18, ctx->ctx.u.s.X19); + ctx->ctx.X15, ctx->ctx.X16, ctx->ctx.X17, ctx->ctx.X18, ctx->ctx.X19); dbg_printf(" x20:%016I64x x21:%016I64x x22:%016I64x x23:%016I64x x24:%016I64x\n", - ctx->ctx.u.s.X20, ctx->ctx.u.s.X21, ctx->ctx.u.s.X22, ctx->ctx.u.s.X23, ctx->ctx.u.s.X24); + ctx->ctx.X20, ctx->ctx.X21, ctx->ctx.X22, ctx->ctx.X23, ctx->ctx.X24); dbg_printf(" x25:%016I64x x26:%016I64x x27:%016I64x x28:%016I64x Fp:%016I64x\n", - ctx->ctx.u.s.X25, ctx->ctx.u.s.X26, ctx->ctx.u.s.X27, ctx->ctx.u.s.X28, ctx->ctx.u.s.Fp); + ctx->ctx.X25, ctx->ctx.X26, ctx->ctx.X27, ctx->ctx.X28, ctx->ctx.Fp); if (all_regs) dbg_printf( "Floating point ARM64 dump not implemented\n" ); } @@ -104,41 +104,41 @@ static void be_arm64_print_segment_info(HANDLE hThread, const dbg_ctx_t *ctx) static struct dbg_internal_var be_arm64_ctx[] = { - {CV_ARM64_PSTATE, "cpsr", (void*)FIELD_OFFSET(CONTEXT, Cpsr), dbg_itype_unsigned_int32}, - {CV_ARM64_X0 + 0, "x0", (void*)FIELD_OFFSET(CONTEXT, u.s.X0), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 1, "x1", (void*)FIELD_OFFSET(CONTEXT, u.s.X1), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 2, "x2", (void*)FIELD_OFFSET(CONTEXT, u.s.X2), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 3, "x3", (void*)FIELD_OFFSET(CONTEXT, u.s.X3), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 4, "x4", (void*)FIELD_OFFSET(CONTEXT, u.s.X4), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 5, "x5", (void*)FIELD_OFFSET(CONTEXT, u.s.X5), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 6, "x6", (void*)FIELD_OFFSET(CONTEXT, u.s.X6), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 7, "x7", (void*)FIELD_OFFSET(CONTEXT, u.s.X7), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 8, "x8", (void*)FIELD_OFFSET(CONTEXT, u.s.X8), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 9, "x9", (void*)FIELD_OFFSET(CONTEXT, u.s.X9), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 10, "x10", (void*)FIELD_OFFSET(CONTEXT, u.s.X10), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 11, "x11", (void*)FIELD_OFFSET(CONTEXT, u.s.X11), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 12, "x12", (void*)FIELD_OFFSET(CONTEXT, u.s.X12), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 13, "x13", (void*)FIELD_OFFSET(CONTEXT, u.s.X13), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 14, "x14", (void*)FIELD_OFFSET(CONTEXT, u.s.X14), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 15, "x15", (void*)FIELD_OFFSET(CONTEXT, u.s.X15), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 16, "x16", (void*)FIELD_OFFSET(CONTEXT, u.s.X16), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 17, "x17", (void*)FIELD_OFFSET(CONTEXT, u.s.X17), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 18, "x18", (void*)FIELD_OFFSET(CONTEXT, u.s.X18), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 19, "x19", (void*)FIELD_OFFSET(CONTEXT, u.s.X19), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 20, "x20", (void*)FIELD_OFFSET(CONTEXT, u.s.X20), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 21, "x21", (void*)FIELD_OFFSET(CONTEXT, u.s.X21), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 22, "x22", (void*)FIELD_OFFSET(CONTEXT, u.s.X22), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 23, "x23", (void*)FIELD_OFFSET(CONTEXT, u.s.X23), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 24, "x24", (void*)FIELD_OFFSET(CONTEXT, u.s.X24), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 25, "x25", (void*)FIELD_OFFSET(CONTEXT, u.s.X25), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 26, "x26", (void*)FIELD_OFFSET(CONTEXT, u.s.X26), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 27, "x27", (void*)FIELD_OFFSET(CONTEXT, u.s.X27), dbg_itype_unsigned_int64}, - {CV_ARM64_X0 + 28, "x28", (void*)FIELD_OFFSET(CONTEXT, u.s.X28), dbg_itype_unsigned_int64}, - {CV_ARM64_FP, "fp", (void*)FIELD_OFFSET(CONTEXT, u.s.Fp), dbg_itype_unsigned_int64}, - {CV_ARM64_LR, "lr", (void*)FIELD_OFFSET(CONTEXT, u.s.Lr), dbg_itype_unsigned_int64}, - {CV_ARM64_SP, "sp", (void*)FIELD_OFFSET(CONTEXT, Sp), dbg_itype_unsigned_int64}, - {CV_ARM64_PC, "pc", (void*)FIELD_OFFSET(CONTEXT, Pc), dbg_itype_unsigned_int64}, - {0, NULL, 0, dbg_itype_none} + {CV_ARM64_PSTATE, "cpsr", (void*)FIELD_OFFSET(CONTEXT, Cpsr), dbg_itype_unsigned_int32}, + {CV_ARM64_X0 + 0, "x0", (void*)FIELD_OFFSET(CONTEXT, X0), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 1, "x1", (void*)FIELD_OFFSET(CONTEXT, X1), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 2, "x2", (void*)FIELD_OFFSET(CONTEXT, X2), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 3, "x3", (void*)FIELD_OFFSET(CONTEXT, X3), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 4, "x4", (void*)FIELD_OFFSET(CONTEXT, X4), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 5, "x5", (void*)FIELD_OFFSET(CONTEXT, X5), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 6, "x6", (void*)FIELD_OFFSET(CONTEXT, X6), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 7, "x7", (void*)FIELD_OFFSET(CONTEXT, X7), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 8, "x8", (void*)FIELD_OFFSET(CONTEXT, X8), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 9, "x9", (void*)FIELD_OFFSET(CONTEXT, X9), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 10, "x10", (void*)FIELD_OFFSET(CONTEXT, X10), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 11, "x11", (void*)FIELD_OFFSET(CONTEXT, X11), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 12, "x12", (void*)FIELD_OFFSET(CONTEXT, X12), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 13, "x13", (void*)FIELD_OFFSET(CONTEXT, X13), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 14, "x14", (void*)FIELD_OFFSET(CONTEXT, X14), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 15, "x15", (void*)FIELD_OFFSET(CONTEXT, X15), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 16, "x16", (void*)FIELD_OFFSET(CONTEXT, X16), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 17, "x17", (void*)FIELD_OFFSET(CONTEXT, X17), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 18, "x18", (void*)FIELD_OFFSET(CONTEXT, X18), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 19, "x19", (void*)FIELD_OFFSET(CONTEXT, X19), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 20, "x20", (void*)FIELD_OFFSET(CONTEXT, X20), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 21, "x21", (void*)FIELD_OFFSET(CONTEXT, X21), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 22, "x22", (void*)FIELD_OFFSET(CONTEXT, X22), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 23, "x23", (void*)FIELD_OFFSET(CONTEXT, X23), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 24, "x24", (void*)FIELD_OFFSET(CONTEXT, X24), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 25, "x25", (void*)FIELD_OFFSET(CONTEXT, X25), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 26, "x26", (void*)FIELD_OFFSET(CONTEXT, X26), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 27, "x27", (void*)FIELD_OFFSET(CONTEXT, X27), dbg_itype_unsigned_int64}, + {CV_ARM64_X0 + 28, "x28", (void*)FIELD_OFFSET(CONTEXT, X28), dbg_itype_unsigned_int64}, + {CV_ARM64_FP, "fp", (void*)FIELD_OFFSET(CONTEXT, Fp), dbg_itype_unsigned_int64}, + {CV_ARM64_LR, "lr", (void*)FIELD_OFFSET(CONTEXT, Lr), dbg_itype_unsigned_int64}, + {CV_ARM64_SP, "sp", (void*)FIELD_OFFSET(CONTEXT, Sp), dbg_itype_unsigned_int64}, + {CV_ARM64_PC, "pc", (void*)FIELD_OFFSET(CONTEXT, Pc), dbg_itype_unsigned_int64}, + {0, NULL, 0, dbg_itype_none} }; static BOOL be_arm64_is_step_over_insn(const void* insn) @@ -247,37 +247,37 @@ static BOOL be_arm64_set_context(HANDLE thread, const dbg_ctx_t *ctx) #define REG(f,n,t,r) {f, n, t, FIELD_OFFSET(CONTEXT, r), sizeof(((CONTEXT*)NULL)->r)} static struct gdb_register be_arm64_gdb_register_map[] = { - REG("core", "x0", NULL, u.s.X0), - REG(NULL, "x1", NULL, u.s.X1), - REG(NULL, "x2", NULL, u.s.X2), - REG(NULL, "x3", NULL, u.s.X3), - REG(NULL, "x4", NULL, u.s.X4), - REG(NULL, "x5", NULL, u.s.X5), - REG(NULL, "x6", NULL, u.s.X6), - REG(NULL, "x7", NULL, u.s.X7), - REG(NULL, "x8", NULL, u.s.X8), - REG(NULL, "x9", NULL, u.s.X9), - REG(NULL, "x10", NULL, u.s.X10), - REG(NULL, "x11", NULL, u.s.X11), - REG(NULL, "x12", NULL, u.s.X12), - REG(NULL, "x13", NULL, u.s.X13), - REG(NULL, "x14", NULL, u.s.X14), - REG(NULL, "x15", NULL, u.s.X15), - REG(NULL, "x16", NULL, u.s.X16), - REG(NULL, "x17", NULL, u.s.X17), - REG(NULL, "x18", NULL, u.s.X18), - REG(NULL, "x19", NULL, u.s.X19), - REG(NULL, "x20", NULL, u.s.X20), - REG(NULL, "x21", NULL, u.s.X21), - REG(NULL, "x22", NULL, u.s.X22), - REG(NULL, "x23", NULL, u.s.X23), - REG(NULL, "x24", NULL, u.s.X24), - REG(NULL, "x25", NULL, u.s.X25), - REG(NULL, "x26", NULL, u.s.X26), - REG(NULL, "x27", NULL, u.s.X27), - REG(NULL, "x28", NULL, u.s.X28), - REG(NULL, "x29", NULL, u.s.Fp), - REG(NULL, "x30", NULL, u.s.Lr), + REG("core", "x0", NULL, X0), + REG(NULL, "x1", NULL, X1), + REG(NULL, "x2", NULL, X2), + REG(NULL, "x3", NULL, X3), + REG(NULL, "x4", NULL, X4), + REG(NULL, "x5", NULL, X5), + REG(NULL, "x6", NULL, X6), + REG(NULL, "x7", NULL, X7), + REG(NULL, "x8", NULL, X8), + REG(NULL, "x9", NULL, X9), + REG(NULL, "x10", NULL, X10), + REG(NULL, "x11", NULL, X11), + REG(NULL, "x12", NULL, X12), + REG(NULL, "x13", NULL, X13), + REG(NULL, "x14", NULL, X14), + REG(NULL, "x15", NULL, X15), + REG(NULL, "x16", NULL, X16), + REG(NULL, "x17", NULL, X17), + REG(NULL, "x18", NULL, X18), + REG(NULL, "x19", NULL, X19), + REG(NULL, "x20", NULL, X20), + REG(NULL, "x21", NULL, X21), + REG(NULL, "x22", NULL, X22), + REG(NULL, "x23", NULL, X23), + REG(NULL, "x24", NULL, X24), + REG(NULL, "x25", NULL, X25), + REG(NULL, "x26", NULL, X26), + REG(NULL, "x27", NULL, X27), + REG(NULL, "x28", NULL, X28), + REG(NULL, "x29", NULL, Fp), + REG(NULL, "x30", NULL, Lr), REG(NULL, "sp", "data_ptr", Sp), REG(NULL, "pc", "code_ptr", Pc), REG(NULL, "cpsr", "cpsr_flags", Cpsr), diff --git a/programs/winedbg/be_x86_64.c b/programs/winedbg/be_x86_64.c index d3cdafb3356..aca04d769fe 100644 --- a/programs/winedbg/be_x86_64.c +++ b/programs/winedbg/be_x86_64.c @@ -19,9 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define NONAMELESSSTRUCT -#define NONAMELESSUNION - #include "debugger.h" #include "wine/debug.h" @@ -109,67 +106,67 @@ static void be_x86_64_print_context(HANDLE hThread, const dbg_ctx_t *pctx, dbg_printf(" dr6:%016I64x dr7:%016I64x\n", ctx->Dr6, ctx->Dr7 ); dbg_printf("Floating point:\n"); - dbg_printf(" flcw:%04x ", LOWORD(ctx->u.FltSave.ControlWord)); - dbg_printf(" fltw:%04x ", LOWORD(ctx->u.FltSave.TagWord)); - dbg_printf(" flsw:%04x", LOWORD(ctx->u.FltSave.StatusWord)); + dbg_printf(" flcw:%04x ", LOWORD(ctx->FltSave.ControlWord)); + dbg_printf(" fltw:%04x ", LOWORD(ctx->FltSave.TagWord)); + dbg_printf(" flsw:%04x", LOWORD(ctx->FltSave.StatusWord)); - dbg_printf("(cc:%d%d%d%d", (ctx->u.FltSave.StatusWord & 0x00004000) >> 14, - (ctx->u.FltSave.StatusWord & 0x00000400) >> 10, - (ctx->u.FltSave.StatusWord & 0x00000200) >> 9, - (ctx->u.FltSave.StatusWord & 0x00000100) >> 8); + dbg_printf("(cc:%d%d%d%d", (ctx->FltSave.StatusWord & 0x00004000) >> 14, + (ctx->FltSave.StatusWord & 0x00000400) >> 10, + (ctx->FltSave.StatusWord & 0x00000200) >> 9, + (ctx->FltSave.StatusWord & 0x00000100) >> 8); - dbg_printf(" top:%01x", (unsigned int) (ctx->u.FltSave.StatusWord & 0x00003800) >> 11); + dbg_printf(" top:%01x", (unsigned int) (ctx->FltSave.StatusWord & 0x00003800) >> 11); - if (ctx->u.FltSave.StatusWord & 0x00000001) /* Invalid Fl OP */ + if (ctx->FltSave.StatusWord & 0x00000001) /* Invalid Fl OP */ { - if (ctx->u.FltSave.StatusWord & 0x00000040) /* Stack Fault */ + if (ctx->FltSave.StatusWord & 0x00000040) /* Stack Fault */ { - if (ctx->u.FltSave.StatusWord & 0x00000200) /* C1 says Overflow */ + if (ctx->FltSave.StatusWord & 0x00000200) /* C1 says Overflow */ dbg_printf(" #IE(Stack Overflow)"); else dbg_printf(" #IE(Stack Underflow)"); /* Underflow */ } else dbg_printf(" #IE(Arithmetic error)"); /* Invalid Fl OP */ } - if (ctx->u.FltSave.StatusWord & 0x00000002) dbg_printf(" #DE"); /* Denormalised OP */ - if (ctx->u.FltSave.StatusWord & 0x00000004) dbg_printf(" #ZE"); /* Zero Divide */ - if (ctx->u.FltSave.StatusWord & 0x00000008) dbg_printf(" #OE"); /* Overflow */ - if (ctx->u.FltSave.StatusWord & 0x00000010) dbg_printf(" #UE"); /* Underflow */ - if (ctx->u.FltSave.StatusWord & 0x00000020) dbg_printf(" #PE"); /* Precision error */ - if (ctx->u.FltSave.StatusWord & 0x00000040) - if (!(ctx->u.FltSave.StatusWord & 0x00000001)) + if (ctx->FltSave.StatusWord & 0x00000002) dbg_printf(" #DE"); /* Denormalised OP */ + if (ctx->FltSave.StatusWord & 0x00000004) dbg_printf(" #ZE"); /* Zero Divide */ + if (ctx->FltSave.StatusWord & 0x00000008) dbg_printf(" #OE"); /* Overflow */ + if (ctx->FltSave.StatusWord & 0x00000010) dbg_printf(" #UE"); /* Underflow */ + if (ctx->FltSave.StatusWord & 0x00000020) dbg_printf(" #PE"); /* Precision error */ + if (ctx->FltSave.StatusWord & 0x00000040) + if (!(ctx->FltSave.StatusWord & 0x00000001)) dbg_printf(" #SE"); /* Stack Fault (don't think this can occur) */ - if (ctx->u.FltSave.StatusWord & 0x00000080) dbg_printf(" #ES"); /* Error Summary */ - if (ctx->u.FltSave.StatusWord & 0x00008000) dbg_printf(" #FB"); /* FPU Busy */ + if (ctx->FltSave.StatusWord & 0x00000080) dbg_printf(" #ES"); /* Error Summary */ + if (ctx->FltSave.StatusWord & 0x00008000) dbg_printf(" #FB"); /* FPU Busy */ dbg_printf(")\n"); dbg_printf(" flerr:%04x:%08lx fldata:%04x:%08lx\n", - ctx->u.FltSave.ErrorSelector, ctx->u.FltSave.ErrorOffset, - ctx->u.FltSave.DataSelector, ctx->u.FltSave.DataOffset ); + ctx->FltSave.ErrorSelector, ctx->FltSave.ErrorOffset, + ctx->FltSave.DataSelector, ctx->FltSave.DataOffset ); for (i = 0; i < 8; i++) { - M128A reg = ctx->u.FltSave.FloatRegisters[i]; + M128A reg = ctx->FltSave.FloatRegisters[i]; if (i == 4) dbg_printf("\n"); dbg_printf(" ST%u:%016I64x%16I64x ", i, reg.High, reg.Low ); } dbg_printf("\n"); - dbg_printf(" mxcsr: %04lx (", ctx->u.FltSave.MxCsr ); + dbg_printf(" mxcsr: %04lx (", ctx->FltSave.MxCsr ); for (i = 0; i < 16; i++) - if (ctx->u.FltSave.MxCsr & (1 << i)) dbg_printf( " %s", mxcsr_flags[i] ); + if (ctx->FltSave.MxCsr & (1 << i)) dbg_printf( " %s", mxcsr_flags[i] ); dbg_printf(" )\n"); for (i = 0; i < 16; i++) { dbg_printf( " %sxmm%u: uint=%016I64x%016I64x", (i > 9) ? "" : " ", i, - ctx->u.FltSave.XmmRegisters[i].High, ctx->u.FltSave.XmmRegisters[i].Low ); - dbg_printf( " double={%g; %g}", *(double *)&ctx->u.FltSave.XmmRegisters[i].Low, - *(double *)&ctx->u.FltSave.XmmRegisters[i].High ); + ctx->FltSave.XmmRegisters[i].High, ctx->FltSave.XmmRegisters[i].Low ); + dbg_printf( " double={%g; %g}", *(double *)&ctx->FltSave.XmmRegisters[i].Low, + *(double *)&ctx->FltSave.XmmRegisters[i].High ); dbg_printf( " float={%g; %g; %g; %g}\n", - (double)*((float *)&ctx->u.FltSave.XmmRegisters[i] + 0), - (double)*((float *)&ctx->u.FltSave.XmmRegisters[i] + 1), - (double)*((float *)&ctx->u.FltSave.XmmRegisters[i] + 2), - (double)*((float *)&ctx->u.FltSave.XmmRegisters[i] + 3) ); + (double)*((float *)&ctx->FltSave.XmmRegisters[i] + 0), + (double)*((float *)&ctx->FltSave.XmmRegisters[i] + 1), + (double)*((float *)&ctx->FltSave.XmmRegisters[i] + 2), + (double)*((float *)&ctx->FltSave.XmmRegisters[i] + 3) ); } } @@ -228,31 +225,31 @@ static struct dbg_internal_var be_x86_64_ctx[] = {CV_AMD64_R13, "R13", (void*)FIELD_OFFSET(CONTEXT, R13), dbg_itype_unsigned_int64}, {CV_AMD64_R14, "R14", (void*)FIELD_OFFSET(CONTEXT, R14), dbg_itype_unsigned_int64}, {CV_AMD64_R15, "R15", (void*)FIELD_OFFSET(CONTEXT, R15), dbg_itype_unsigned_int64}, - {CV_AMD64_ST0, "ST0", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[0]), dbg_itype_long_real}, - {CV_AMD64_ST0+1, "ST1", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[1]), dbg_itype_long_real}, - {CV_AMD64_ST0+2, "ST2", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[2]), dbg_itype_long_real}, - {CV_AMD64_ST0+3, "ST3", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[3]), dbg_itype_long_real}, - {CV_AMD64_ST0+4, "ST4", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[4]), dbg_itype_long_real}, - {CV_AMD64_ST0+5, "ST5", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[5]), dbg_itype_long_real}, - {CV_AMD64_ST0+6, "ST6", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[6]), dbg_itype_long_real}, - {CV_AMD64_ST0+7, "ST7", (void*)FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[7]), dbg_itype_long_real}, - {CV_AMD64_XMM0, "XMM0", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm0), dbg_itype_m128a}, - {CV_AMD64_XMM0+1, "XMM1", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm1), dbg_itype_m128a}, - {CV_AMD64_XMM0+2, "XMM2", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm2), dbg_itype_m128a}, - {CV_AMD64_XMM0+3, "XMM3", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm3), dbg_itype_m128a}, - {CV_AMD64_XMM0+4, "XMM4", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm4), dbg_itype_m128a}, - {CV_AMD64_XMM0+5, "XMM5", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm5), dbg_itype_m128a}, - {CV_AMD64_XMM0+6, "XMM6", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm6), dbg_itype_m128a}, - {CV_AMD64_XMM0+7, "XMM7", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm7), dbg_itype_m128a}, - {CV_AMD64_XMM8, "XMM8", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm8), dbg_itype_m128a}, - {CV_AMD64_XMM8+1, "XMM9", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm9), dbg_itype_m128a}, - {CV_AMD64_XMM8+2, "XMM10", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm10), dbg_itype_m128a}, - {CV_AMD64_XMM8+3, "XMM11", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm11), dbg_itype_m128a}, - {CV_AMD64_XMM8+4, "XMM12", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm12), dbg_itype_m128a}, - {CV_AMD64_XMM8+5, "XMM13", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm13), dbg_itype_m128a}, - {CV_AMD64_XMM8+6, "XMM14", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm14), dbg_itype_m128a}, - {CV_AMD64_XMM8+7, "XMM15", (void*)FIELD_OFFSET(CONTEXT, u.s.Xmm15), dbg_itype_m128a}, - {0, NULL, 0, dbg_itype_none} + {CV_AMD64_ST0, "ST0", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[0]), dbg_itype_long_real}, + {CV_AMD64_ST0+1, "ST1", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[1]), dbg_itype_long_real}, + {CV_AMD64_ST0+2, "ST2", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[2]), dbg_itype_long_real}, + {CV_AMD64_ST0+3, "ST3", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[3]), dbg_itype_long_real}, + {CV_AMD64_ST0+4, "ST4", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[4]), dbg_itype_long_real}, + {CV_AMD64_ST0+5, "ST5", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[5]), dbg_itype_long_real}, + {CV_AMD64_ST0+6, "ST6", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[6]), dbg_itype_long_real}, + {CV_AMD64_ST0+7, "ST7", (void*)FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[7]), dbg_itype_long_real}, + {CV_AMD64_XMM0, "XMM0", (void*)FIELD_OFFSET(CONTEXT, Xmm0), dbg_itype_m128a}, + {CV_AMD64_XMM0+1, "XMM1", (void*)FIELD_OFFSET(CONTEXT, Xmm1), dbg_itype_m128a}, + {CV_AMD64_XMM0+2, "XMM2", (void*)FIELD_OFFSET(CONTEXT, Xmm2), dbg_itype_m128a}, + {CV_AMD64_XMM0+3, "XMM3", (void*)FIELD_OFFSET(CONTEXT, Xmm3), dbg_itype_m128a}, + {CV_AMD64_XMM0+4, "XMM4", (void*)FIELD_OFFSET(CONTEXT, Xmm4), dbg_itype_m128a}, + {CV_AMD64_XMM0+5, "XMM5", (void*)FIELD_OFFSET(CONTEXT, Xmm5), dbg_itype_m128a}, + {CV_AMD64_XMM0+6, "XMM6", (void*)FIELD_OFFSET(CONTEXT, Xmm6), dbg_itype_m128a}, + {CV_AMD64_XMM0+7, "XMM7", (void*)FIELD_OFFSET(CONTEXT, Xmm7), dbg_itype_m128a}, + {CV_AMD64_XMM8, "XMM8", (void*)FIELD_OFFSET(CONTEXT, Xmm8), dbg_itype_m128a}, + {CV_AMD64_XMM8+1, "XMM9", (void*)FIELD_OFFSET(CONTEXT, Xmm9), dbg_itype_m128a}, + {CV_AMD64_XMM8+2, "XMM10", (void*)FIELD_OFFSET(CONTEXT, Xmm10), dbg_itype_m128a}, + {CV_AMD64_XMM8+3, "XMM11", (void*)FIELD_OFFSET(CONTEXT, Xmm11), dbg_itype_m128a}, + {CV_AMD64_XMM8+4, "XMM12", (void*)FIELD_OFFSET(CONTEXT, Xmm12), dbg_itype_m128a}, + {CV_AMD64_XMM8+5, "XMM13", (void*)FIELD_OFFSET(CONTEXT, Xmm13), dbg_itype_m128a}, + {CV_AMD64_XMM8+6, "XMM14", (void*)FIELD_OFFSET(CONTEXT, Xmm14), dbg_itype_m128a}, + {CV_AMD64_XMM8+7, "XMM15", (void*)FIELD_OFFSET(CONTEXT, Xmm15), dbg_itype_m128a}, + {0, NULL, 0, dbg_itype_none} }; #define f_mod(b) ((b)>>6) @@ -735,40 +732,40 @@ static struct gdb_register be_x86_64_gdb_register_map[] = { REG(NULL, "es", NULL, SegEs), REG(NULL, "fs", NULL, SegFs), REG(NULL, "gs", NULL, SegGs), - { NULL, "st0", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 0]), 10}, - { NULL, "st1", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 1]), 10}, - { NULL, "st2", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 2]), 10}, - { NULL, "st3", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 3]), 10}, - { NULL, "st4", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 4]), 10}, - { NULL, "st5", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 5]), 10}, - { NULL, "st6", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 6]), 10}, - { NULL, "st7", "i387_ext", FIELD_OFFSET(CONTEXT, u.FltSave.FloatRegisters[ 7]), 10}, - REG(NULL, "fctrl", NULL, u.FltSave.ControlWord), - REG(NULL, "fstat", NULL, u.FltSave.StatusWord), - REG(NULL, "ftag", NULL, u.FltSave.TagWord), - REG(NULL, "fiseg", NULL, u.FltSave.ErrorSelector), - REG(NULL, "fioff", NULL, u.FltSave.ErrorOffset), - REG(NULL, "foseg", NULL, u.FltSave.DataSelector), - REG(NULL, "fooff", NULL, u.FltSave.DataOffset), - REG(NULL, "fop", NULL, u.FltSave.ErrorOpcode), + { NULL, "st0", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 0]), 10}, + { NULL, "st1", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 1]), 10}, + { NULL, "st2", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 2]), 10}, + { NULL, "st3", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 3]), 10}, + { NULL, "st4", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 4]), 10}, + { NULL, "st5", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 5]), 10}, + { NULL, "st6", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 6]), 10}, + { NULL, "st7", "i387_ext", FIELD_OFFSET(CONTEXT, FltSave.FloatRegisters[ 7]), 10}, + REG(NULL, "fctrl", NULL, FltSave.ControlWord), + REG(NULL, "fstat", NULL, FltSave.StatusWord), + REG(NULL, "ftag", NULL, FltSave.TagWord), + REG(NULL, "fiseg", NULL, FltSave.ErrorSelector), + REG(NULL, "fioff", NULL, FltSave.ErrorOffset), + REG(NULL, "foseg", NULL, FltSave.DataSelector), + REG(NULL, "fooff", NULL, FltSave.DataOffset), + REG(NULL, "fop", NULL, FltSave.ErrorOpcode), - REG("sse", "xmm0", "vec128", u.s.Xmm0), - REG(NULL, "xmm1", "vec128", u.s.Xmm1), - REG(NULL, "xmm2", "vec128", u.s.Xmm2), - REG(NULL, "xmm3", "vec128", u.s.Xmm3), - REG(NULL, "xmm4", "vec128", u.s.Xmm4), - REG(NULL, "xmm5", "vec128", u.s.Xmm5), - REG(NULL, "xmm6", "vec128", u.s.Xmm6), - REG(NULL, "xmm7", "vec128", u.s.Xmm7), - REG(NULL, "xmm8", "vec128", u.s.Xmm8), - REG(NULL, "xmm9", "vec128", u.s.Xmm9), - REG(NULL, "xmm10", "vec128", u.s.Xmm10), - REG(NULL, "xmm11", "vec128", u.s.Xmm11), - REG(NULL, "xmm12", "vec128", u.s.Xmm12), - REG(NULL, "xmm13", "vec128", u.s.Xmm13), - REG(NULL, "xmm14", "vec128", u.s.Xmm14), - REG(NULL, "xmm15", "vec128", u.s.Xmm15), - REG(NULL, "mxcsr", "i386_mxcsr", u.FltSave.MxCsr), + REG("sse", "xmm0", "vec128", Xmm0), + REG(NULL, "xmm1", "vec128", Xmm1), + REG(NULL, "xmm2", "vec128", Xmm2), + REG(NULL, "xmm3", "vec128", Xmm3), + REG(NULL, "xmm4", "vec128", Xmm4), + REG(NULL, "xmm5", "vec128", Xmm5), + REG(NULL, "xmm6", "vec128", Xmm6), + REG(NULL, "xmm7", "vec128", Xmm7), + REG(NULL, "xmm8", "vec128", Xmm8), + REG(NULL, "xmm9", "vec128", Xmm9), + REG(NULL, "xmm10", "vec128", Xmm10), + REG(NULL, "xmm11", "vec128", Xmm11), + REG(NULL, "xmm12", "vec128", Xmm12), + REG(NULL, "xmm13", "vec128", Xmm13), + REG(NULL, "xmm14", "vec128", Xmm14), + REG(NULL, "xmm15", "vec128", Xmm15), + REG(NULL, "mxcsr", "i386_mxcsr", FltSave.MxCsr), }; struct backend_cpu be_x86_64 = diff --git a/programs/winedbg/debugger.h b/programs/winedbg/debugger.h index 234b34aa083..59c923c38ad 100644 --- a/programs/winedbg/debugger.h +++ b/programs/winedbg/debugger.h @@ -24,8 +24,6 @@ #include #include -#define NONAMELESSUNION -#define NONAMELESSSTRUCT #include "ntstatus.h" #define WIN32_NO_STATUS #define WIN32_LEAN_AND_MEAN diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c index 8fab5c0cd39..18e18289bee 100644 --- a/programs/winedbg/gdbproxy.c +++ b/programs/winedbg/gdbproxy.c @@ -24,9 +24,6 @@ * http://sources.redhat.com/gdb/onlinedocs/gdb/Maintenance-Commands.html */ -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - #include #include #include diff --git a/programs/winedbg/tgt_minidump.c b/programs/winedbg/tgt_minidump.c index d5f3a10a5e9..8ca2bd7e5b6 100644 --- a/programs/winedbg/tgt_minidump.c +++ b/programs/winedbg/tgt_minidump.c @@ -18,9 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - #include #include #include @@ -308,8 +305,8 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) break; } dbg_printf(" %ls was running on #%d %s CPU%s", - exec_name, msi->u.s.NumberOfProcessors, str, - msi->u.s.NumberOfProcessors < 2 ? "" : "s"); + exec_name, msi->NumberOfProcessors, str, + msi->NumberOfProcessors < 2 ? "" : "s"); switch (msi->MajorVersion) { case 3: @@ -334,8 +331,8 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) case 0: str = "2000"; break; case 1: str = "XP"; break; case 2: - if (msi->u.s.ProductType == 1) str = "XP"; - else if (msi->u.s.ProductType == 3) str = "Server 2003"; + if (msi->ProductType == 1) str = "XP"; + else if (msi->ProductType == 3) str = "Server 2003"; else str = "5-????"; break; default: str = "5-????"; break; @@ -345,23 +342,23 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) switch (msi->MinorVersion) { case 0: - if (msi->u.s.ProductType == 1) str = "Vista"; - else if (msi->u.s.ProductType == 3) str = "Server 2008"; + if (msi->ProductType == 1) str = "Vista"; + else if (msi->ProductType == 3) str = "Server 2008"; else str = "6-????"; break; case 1: - if (msi->u.s.ProductType == 1) str = "Win7"; - else if (msi->u.s.ProductType == 3) str = "Server 2008"; + if (msi->ProductType == 1) str = "Win7"; + else if (msi->ProductType == 3) str = "Server 2008"; else str = "6-????"; break; case 2: - if (msi->u.s.ProductType == 1) str = "Win8"; - else if (msi->u.s.ProductType == 3) str = "Server 2012"; + if (msi->ProductType == 1) str = "Win8"; + else if (msi->ProductType == 3) str = "Server 2012"; else str = "6-????"; break; case 3: - if (msi->u.s.ProductType == 1) str = "Win8.1"; - else if (msi->u.s.ProductType == 3) str = "Server 2012 R2"; + if (msi->ProductType == 1) str = "Win8.1"; + else if (msi->ProductType == 3) str = "Server 2012 R2"; else str = "6-????"; break; default: str = "6-????"; break; @@ -371,7 +368,7 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) switch (msi->MinorVersion) { case 0: - if (msi->u.s.ProductType == 1) str = "Win10"; + if (msi->ProductType == 1) str = "Win10"; else str = "10-????"; break; default: str = "10-????"; break;