[Bug 16567] New: LLDB handles user-generated signals incorrectly

Bug ID 16567
Summary LLDB handles user-generated signals incorrectly
Product lldb
Version unspecified
Hardware PC
OS All
Status NEW
Severity normal
Priority P
Component All Bugs
Assignee lldb-dev@cs.uiuc.edu
Reporter daniel.malea@intel.com
Classification Unclassified

On Mac OS X, LLDB reports an incorrect thread count when debugging programs
that have user-generated signals (i.e. SIGUSR1.)

Specifically, it looks like LLDB reports one less thread than actually exists.
To reproduce, remove the @skipIfDarwin decorator (that corresponds to this bug)
from test/functionalities/thread/TestConcurrentEvents.py and run:

python dotest.py --executable <path-to-lldb> TestConcurrentEvents.py

On Linux, this bug manifests as an LLDB hang, though a fix is in progress. To
reproduce that failure, follow the same steps as above, but remove the
@skipIfLinux decorator from the test case in question.

Daniel Malea changed bug 16567

What Removed Added
Resolution FIXED

Comment # 5 on bug 16567 from Daniel Malea

So, I noticed that after I switched the test to use pthread_kill() instead of
kill() to deliver the signal to a specific thread rather than a random one in
the process, the test started passing consistently on Mac OS X (and Linux).

I think that pthreads context switching was just confusing LLDB, and this is
really a non-issue. Unless people complain about this behaviour with kill() in
the future, I am closing this bug.

The linux (SIGTRAP) issue was resolved by Matt in r86112.