Stop after we've written the dump in response to the initial breakpoint
EXCEPTION_DEBUG_EVENT we recieve for attaching to the process.

(rather than bogusly sitting there for 20 seconds waiting for more debug
events from a stopped process after we've already written the dump).
---
 winsup/utils/dumper.cc | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc
index ace752464..e80758e0c 100644
--- a/winsup/utils/dumper.cc
+++ b/winsup/utils/dumper.cc
@@ -615,8 +615,6 @@ out:
 int
 dumper::collect_process_information ()
 {
-  int exception_level = 0;
-
   if (!sane ())
     return 0;
 
@@ -631,7 +629,7 @@ dumper::collect_process_information ()
 
   while (1)
     {
-      if (!WaitForDebugEvent (&current_event, 20000))
+      if (!WaitForDebugEvent (&current_event, INFINITE))
        return 0;
 
       deb_printf ("got debug event %d\n", current_event.dwDebugEventCode);
@@ -675,12 +673,6 @@ dumper::collect_process_information ()
 
        case EXCEPTION_DEBUG_EVENT:
 
-         exception_level++;
-         if (exception_level == 2)
-           break;
-         else if (exception_level > 2)
-           return 0;
-
          collect_memory_sections ();
 
          /* got all info. time to dump */
@@ -697,6 +689,9 @@ dumper::collect_process_information ()
              goto failed;
            };
 
+         /* We're done */
+         goto failed;
+
          break;
 
        default:
-- 
2.27.0

Reply via email to