diff options
author | Eli Zaretskii <eliz@gnu.org> | 2001-07-26 14:41:16 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2001-07-26 14:41:16 +0000 |
commit | 5b61f3d20a21f54e203a83e2d2b155818884c7f6 (patch) | |
tree | 98580354d45f224362e06f13619547f8a1e213ee /gdb/go32-nat.c | |
parent | 893a2991fbc5bc32a2209d2a6136fbb1b25586d0 (diff) | |
download | gdb-5b61f3d20a21f54e203a83e2d2b155818884c7f6.tar.gz |
* go32-nat.c (read_memory_region): Make sure the segment limit was
indeed set, to work around a Windows 2000 bug.
Diffstat (limited to 'gdb/go32-nat.c')
-rw-r--r-- | gdb/go32-nat.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index fce7a0f4815..b2828ebaf44 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; |