llvm-project/lldb
Greg Clayton f1186de3f4 <rdar://problem/11529853>
Sending async packets can deadlock a program on darwin. We currently allow breakpoint packets and memory read/write packets (for software breakpoints) to be sent while a program is running. In the GDB remote plug-in, we will interrupt the run, send the async packet and resume (currently with the continue packet that caused the program to resume). If the GDB server supports the "vCont" packet, we might have initially continued with each thread stating it should continue. If new threads show up while we are stopped, which happend when running GCD, we can end up with new threads that we aren't mentioning in the continue list. So we start with a thread list of 1,2,3 and continue:

continue thread 1, continue thread 2, continue thread 3 

Now we interrupt and set a breakpoint and we actually have threads 1,2,3,4 now when we are about to resume, yet we send:

continue thread 1, continue thread 2, continue thread 3 

Any thread that isn't mentioned is currently going to stay suspended. This causes the deadlock.

llvm-svn: 157439
2012-05-24 23:42:14 +00:00
..
docs When unwinding from the first frame, try to ask the remote debugserver 2011-12-13 05:39:38 +00:00
examples Fixes for performance to data formatters - Python < 3.0 is much slower when using True/False as compared to 1/0 for logical values. Wexploit this to our advantage. Other minor tweaks 2012-05-21 21:52:38 +00:00
include rdar://problem/11457634 2012-05-24 00:43:00 +00:00
lib Add Security framework to the list of frameworks needed for linking. 2012-04-05 06:20:13 +00:00
lldb.xcodeproj Change the "Debug" build to use the current MacOSX SDK. Fix the swig builder to have an explicit 2012-05-24 01:16:09 +00:00
lldb.xcworkspace I accidentally committed some changes to the 2011-12-21 21:30:33 +00:00
resources bump to lldb-150. 2012-05-19 00:32:19 +00:00
scripts Fix missing Resources/Python directory for macosx build. 2012-05-24 18:14:18 +00:00
source <rdar://problem/11529853> 2012-05-24 23:42:14 +00:00
test rdar://problem/11457634 2012-05-24 00:43:00 +00:00
tools Add the capability to display the number of supported hardware watchpoints to the "watchpoint list" command. 2012-05-23 21:09:52 +00:00
utils Minor cleanup. 2012-03-05 18:25:29 +00:00
www Added a GDB equivalent for saving binary memory 2012-05-21 17:01:59 +00:00
.gitignore Remove "llvm" from list of things to ignore. This results in the 2012-03-03 06:43:59 +00:00
INSTALL.txt You'll need to be running Mac OS X to get lldb to build right now. 2010-06-09 07:29:26 +00:00
LICENSE.TXT test commit 2010-06-09 03:55:24 +00:00
Makefile Revert the RTTI change from r151187. It make lldb compile with g++ 4.4 but it doesn't link anymore. The bug seems to be fixed in g++ 4.5. 2012-02-22 21:00:17 +00:00