X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Flinux-nat.c;h=0710ac718acbbadee3883b8999b6f849cd733cbe;hb=17fbb0bdc7f49801a09bffc483ccd1fd5ab21403;hp=b08943298b64b68794f47f321f2b79fc7c3c7342;hpb=444abacaac2e6ce05283dff0f7d9154d3877f616;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index b08943298b..0710ac718a 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -3413,12 +3413,18 @@ lin_thread_get_thread_signals (sigset_t *set) sigemptyset (set); restart = get_signo ("__pthread_sig_restart"); + cancel = get_signo ("__pthread_sig_cancel"); + + /* LinuxThreads normally uses the first two RT signals, but in some legacy + cases may use SIGUSR1/SIGUSR2. NPTL always uses RT signals, but does + not provide any way for the debugger to query the signal numbers - + fortunately they don't change! */ + if (restart == 0) - return; + restart = __SIGRTMIN; - cancel = get_signo ("__pthread_sig_cancel"); if (cancel == 0) - return; + cancel = __SIGRTMIN + 1; sigaddset (set, restart); sigaddset (set, cancel);