summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2016-07-02 12:27:04 +0200
committerCorinna Vinschen <corinna@vinschen.de>2016-07-02 12:27:04 +0200
commit9f54ceadae4336b83a724bd3370c0c2dcd00b935 (patch)
tree7ac372ba5f6a34af86ac552e0701e06ecccb5dc1
parent29600e04e3408a83e4989d9ebce7f80ff3aaea61 (diff)
downloadcygnal-9f54ceadae4336b83a724bd3370c0c2dcd00b935.tar.gz
cygnal-9f54ceadae4336b83a724bd3370c0c2dcd00b935.tar.bz2
cygnal-9f54ceadae4336b83a724bd3370c0c2dcd00b935.zip
ldd: terminate process on hitting breakpoint
So far ldd terminates the inferior process as soon as some thread is started. Apparently threads are started from even ntdll.dll before the main thread of the application is started. As a result the dll list is cut short since ldd terminates prematurely. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/utils/ldd.cc5
1 files changed, 1 insertions, 4 deletions
diff --git a/winsup/utils/ldd.cc b/winsup/utils/ldd.cc
index 152119f2e..8a33984d1 100644
--- a/winsup/utils/ldd.cc
+++ b/winsup/utils/ldd.cc
@@ -352,13 +352,10 @@ report (const char *in_fn, bool multiple)
break;
case STATUS_BREAKPOINT:
if (!isdll)
- cont = DBG_EXCEPTION_NOT_HANDLED;
+ TerminateProcess (hProcess, 0);
break;
}
break;
- case CREATE_THREAD_DEBUG_EVENT:
- TerminateProcess (hProcess, 0);
- break;
case EXIT_PROCESS_DEBUG_EVENT:
print_and_exit:
print_dlls (&dll_list, isdll ? fn_win : NULL, process_fn);