Eric Pouech : winedbg: Set first LDT entry value as ntdll does.
Module: wine Branch: master Commit: 91ba80df262b93b9a5edabd7cc0259fcbedf51d4 URL: https://gitlab.winehq.org/wine/wine/-/commit/91ba80df262b93b9a5edabd7cc0259f... Author: Eric Pouech <epouech(a)codeweavers.com> Date: Fri Oct 13 09:58:23 2023 +0200 winedbg: Set first LDT entry value as ntdll does. Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- programs/winedbg/be_i386.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/programs/winedbg/be_i386.c b/programs/winedbg/be_i386.c index 503a182641d..9f22dd5f3d4 100644 --- a/programs/winedbg/be_i386.c +++ b/programs/winedbg/be_i386.c @@ -30,13 +30,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(winedbg); #define IS_VM86_MODE(ctx) (ctx->EFlags & V86_FLAG) +static const unsigned first_ldt_entry = 32; + static ADDRESS_MODE get_selector_type(HANDLE hThread, const WOW64_CONTEXT *ctx, WORD sel) { LDT_ENTRY le; if (IS_VM86_MODE(ctx)) return AddrModeReal; /* null or system selector */ - if (!(sel & 4) || ((sel >> 3) < 17)) return AddrModeFlat; + if (!(sel & 4) || ((sel >> 3) < first_ldt_entry)) return AddrModeFlat; if (dbg_curr_process->process_io->get_selector(hThread, sel, &le)) return le.HighWord.Bits.Default_Big ? AddrMode1632 : AddrMode1616; /* selector doesn't exist */ @@ -52,7 +54,7 @@ static void* be_i386_linearize(HANDLE hThread, const ADDRESS64* addr) case AddrModeReal: return (void*)((DWORD_PTR)(LOWORD(addr->Segment) << 4) + (DWORD_PTR)addr->Offset); case AddrMode1632: - if (!(addr->Segment & 4) || ((addr->Segment >> 3) < 17)) + if (!(addr->Segment & 4) || ((addr->Segment >> 3) < first_ldt_entry)) return (void*)(DWORD_PTR)addr->Offset; /* fall through */ case AddrMode1616:
participants (1)
-
Alexandre Julliard