diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2015-07-05 12:51:52 +0200 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-07-05 12:53:30 +0200 |
commit | e426213a88e060ae3d739a8d9fe2f3e7e0432e43 (patch) | |
tree | 4b632d10ccc97ab1e24cc49c677c119a56944090 /winsup/cygwin/fhandler_process.cc | |
parent | f0464fbf9d779d3868a0fa6f341045babadfe145 (diff) | |
download | cygnal-e426213a88e060ae3d739a8d9fe2f3e7e0432e43.tar.gz cygnal-e426213a88e060ae3d739a8d9fe2f3e7e0432e43.tar.bz2 cygnal-e426213a88e060ae3d739a8d9fe2f3e7e0432e43.zip |
Disable fetching heap info on 64 bit XP/2003
* fhandler_process.cc (heap_info::heap_info): Disable fetching heap info
on 64 bit XP/2003. Explain why.
* wincap.h (wincaps::has_broken_rtl_query_process_debug_information):
New element.
* wincap.cc: Implement above element throughout.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/fhandler_process.cc')
-rw-r--r-- | winsup/cygwin/fhandler_process.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index 161050b3b..d3ee874cd 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -592,7 +592,11 @@ struct heap_info NTSTATUS status; PDEBUG_HEAP_ARRAY harray; - buf = RtlCreateQueryDebugBuffer (0, FALSE); + /* FIXME? RtlQueryProcessDebugInformation/CreateToolhelp32Snapshot both + crash the target process on 64 bit XP/2003 in native 64 bit mode. */ + if (wincap.has_broken_rtl_query_process_debug_information ()) + return; + buf = RtlCreateQueryDebugBuffer (16 * 65536, FALSE); if (!buf) return; status = RtlQueryProcessDebugInformation (pid, PDI_HEAPS | PDI_HEAP_BLOCKS, |