From 2033c18a5fa97ec584aa3e7c9683345dddf5e579 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 26 Jul 2001 14:41:16 +0000 Subject: [PATCH] * go32-nat.c (read_memory_region): Make sure the segment limit was indeed set, to work around a Windows 2000 bug. --- gdb/ChangeLog | 5 +++++ gdb/go32-nat.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 921fbdd..57ad491 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2001-07-26 Eli Zaretskii + + * go32-nat.c (read_memory_region): Make sure the segment limit was + indeed set, to work around a Windows 2000 bug. + 2001-07-25 Daniel Jacobowitz * infptrace.c (child_xfer_memory): Add cast to CORE_ADDR. diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index fce7a0f..b2828eb 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -1331,7 +1331,10 @@ read_memory_region (unsigned long addr, void *dest, size_t len) if (__dpmi_set_segment_base_address (sel, addr) != -1 && __dpmi_set_descriptor_access_rights (sel, access_rights) != -1 - && __dpmi_set_segment_limit (sel, segment_limit) != -1) + && __dpmi_set_segment_limit (sel, segment_limit) != -1 + /* W2K silently fails to set the segment limit, leaving + it at zero; this test avoids the resulting crash. */ + && __dpmi_get_segment_limit (sel) >= segment_limit) movedata (sel, 0, _my_ds (), (unsigned)dest, len); else retval = 0; -- 2.7.4