summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_process.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2015-07-05 12:51:52 +0200
committerCorinna Vinschen <corinna@vinschen.de>2015-07-05 12:53:30 +0200
commite426213a88e060ae3d739a8d9fe2f3e7e0432e43 (patch)
tree4b632d10ccc97ab1e24cc49c677c119a56944090 /winsup/cygwin/fhandler_process.cc
parentf0464fbf9d779d3868a0fa6f341045babadfe145 (diff)
downloadcygnal-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.cc6
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,