[Lldb-commits] [lldb] r154725 - in /lldb/branches/lldb-platform-work: ./ scripts/ source/API/ source/Host/common/ source/Plugins/Process/gdb-remote/ source/Target/

Johnny Chen johnny.chen at apple.com
Fri Apr 13 17:59:05 PDT 2012


Author: johnny
Date: Fri Apr 13 19:59:04 2012
New Revision: 154725

URL: http://llvm.org/viewvc/llvm-project?rev=154725&view=rev
Log:
Merge changes from ToT:

svn merge -r 154699:154722 https://johnny@llvm.org/svn/llvm-project/lldb/trunk .

Added:
    lldb/branches/lldb-platform-work/scripts/llvm.fix-target-amalgamated.diff
      - copied unchanged from r154722, lldb/trunk/scripts/llvm.fix-target-amalgamated.diff
Removed:
    lldb/branches/lldb-platform-work/scripts/llvm.fix-arm-jit-info.diff
    lldb/branches/lldb-platform-work/scripts/llvm.fix-vector-list-four.diff
Modified:
    lldb/branches/lldb-platform-work/   (props changed)
    lldb/branches/lldb-platform-work/llvm.zip
    lldb/branches/lldb-platform-work/source/API/SBFrame.cpp
    lldb/branches/lldb-platform-work/source/Host/common/Mutex.cpp
    lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
    lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
    lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
    lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    lldb/branches/lldb-platform-work/source/Target/Process.cpp
    lldb/branches/lldb-platform-work/source/Target/ThreadPlanCallFunction.cpp

Propchange: lldb/branches/lldb-platform-work/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Apr 13 19:59:04 2012
@@ -1 +1 @@
-/lldb/trunk:154224-154699
+/lldb/trunk:154224-154722

Modified: lldb/branches/lldb-platform-work/llvm.zip
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/llvm.zip?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
Binary files - no diff available.

Removed: lldb/branches/lldb-platform-work/scripts/llvm.fix-arm-jit-info.diff
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/scripts/llvm.fix-arm-jit-info.diff?rev=154724&view=auto
==============================================================================
--- lldb/branches/lldb-platform-work/scripts/llvm.fix-arm-jit-info.diff (original)
+++ lldb/branches/lldb-platform-work/scripts/llvm.fix-arm-jit-info.diff (removed)
@@ -1,22 +0,0 @@
-Index: lib/Target/ARM/ARMJITInfo.cpp
-===================================================================
---- lib/Target/ARM/ARMJITInfo.cpp	(revision 152547)
-+++ lib/Target/ARM/ARMJITInfo.cpp	(revision 152548)
-@@ -61,7 +61,7 @@
-     // concerned, so we can't just preserve the callee saved regs.
-     "stmdb sp!, {r0, r1, r2, r3, lr}\n"
- #if (defined(__VFP_FP__) && !defined(__SOFTFP__))
--    "fstmfdd sp!, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
-+    "vstmdb sp!, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
- #endif
-     // The LR contains the address of the stub function on entry.
-     // pass it as the argument to the C part of the callback
-@@ -85,7 +85,7 @@
-     //
- #if (defined(__VFP_FP__) && !defined(__SOFTFP__))
-     // Restore VFP caller-saved registers.
--    "fldmfdd sp!, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
-+    "vldmia sp!, {d0, d1, d2, d3, d4, d5, d6, d7}\n"
- #endif
-     //
-     //      We need to exchange the values in slots 0 and 1 so we can

Removed: lldb/branches/lldb-platform-work/scripts/llvm.fix-vector-list-four.diff
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/scripts/llvm.fix-vector-list-four.diff?rev=154724&view=auto
==============================================================================
--- lldb/branches/lldb-platform-work/scripts/llvm.fix-vector-list-four.diff (original)
+++ lldb/branches/lldb-platform-work/scripts/llvm.fix-vector-list-four.diff (removed)
@@ -1,421 +0,0 @@
-Index: test/MC/Disassembler/ARM/neont2.txt
-===================================================================
---- test/MC/Disassembler/ARM/neont2.txt	(revision 152265)
-+++ test/MC/Disassembler/ARM/neont2.txt	(working copy)
-@@ -1595,3 +1595,186 @@
- # CHECK vld2.8	{d17[], d19[]}, [r7, :16]!
- 0xe7 0xf9 0x3f 0x1d
- # CHECK vld2.8	{d17[], d19[]}, [r7, :16]
-+
-+# rdar://11034702
-+0x04 0xf9 0x0d 0x87
-+# CHECK: vst1.8	{d8}, [r4]!             
-+0x04 0xf9 0x4d 0x87
-+# CHECK: vst1.16	{d8}, [r4]!             
-+0x04 0xf9 0x8d 0x87
-+# CHECK: vst1.32	{d8}, [r4]!             
-+0x04 0xf9 0xcd 0x87
-+# CHECK: vst1.64	{d8}, [r4]!             
-+0x04 0xf9 0x06 0x87
-+# CHECK: vst1.8	{d8}, [r4], r6          
-+0x04 0xf9 0x46 0x87
-+# CHECK: vst1.16	{d8}, [r4], r6          
-+0x04 0xf9 0x86 0x87
-+# CHECK: vst1.32	{d8}, [r4], r6          
-+0x04 0xf9 0xc6 0x87
-+# CHECK: vst1.64	{d8}, [r4], r6          
-+
-+0x04 0xf9 0x0d 0x8a
-+# CHECK: vst1.8	{d8, d9}, [r4]!         
-+0x04 0xf9 0x4d 0x8a
-+# CHECK: vst1.16	{d8, d9}, [r4]!         
-+0x04 0xf9 0x8d 0x8a
-+# CHECK: vst1.32	{d8, d9}, [r4]!         
-+0x04 0xf9 0xcd 0x8a
-+# CHECK: vst1.64	{d8, d9}, [r4]!         
-+0x04 0xf9 0x06 0x8a
-+# CHECK: vst1.8	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x46 0x8a
-+# CHECK: vst1.16	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x86 0x8a
-+# CHECK: vst1.32	{d8, d9}, [r4], r6      
-+0x04 0xf9 0xc6 0x8a
-+# CHECK: vst1.64	{d8, d9}, [r4], r6      
-+
-+0x04 0xf9 0x0d 0x86
-+# CHECK: vst1.8	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x4d 0x86
-+# CHECK: vst1.16	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x8d 0x86
-+# CHECK: vst1.32	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0xcd 0x86
-+# CHECK: vst1.64	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x06 0x86
-+# CHECK: vst1.8	{d8, d9, d10}, [r4], r6 
-+0x04 0xf9 0x46 0x86
-+# CHECK: vst1.16	{d8, d9, d10}, [r4], r6 
-+0x04 0xf9 0x86 0x86
-+# CHECK: vst1.32	{d8, d9, d10}, [r4], r6 
-+0x04 0xf9 0xc6 0x86
-+# CHECK: vst1.64	{d8, d9, d10}, [r4], r6 
-+
-+0x04 0xf9 0x0d 0x82
-+# CHECK: vst1.8	{d8, d9, d10, d11}, [r4]! 
-+0x04 0xf9 0x4d 0x82
-+# CHECK: vst1.16	{d8, d9, d10, d11}, [r4]! 
-+0x04 0xf9 0x8d 0x82
-+# CHECK: vst1.32	{d8, d9, d10, d11}, [r4]! 
-+0x04 0xf9 0xcd 0x82
-+# CHECK: vst1.64	{d8, d9, d10, d11}, [r4]! 
-+0x04 0xf9 0x06 0x82
-+# CHECK: vst1.8	{d8, d9, d10, d11}, [r4], r6 
-+0x04 0xf9 0x46 0x82
-+# CHECK: vst1.16	{d8, d9, d10, d11}, [r4], r6 
-+0x04 0xf9 0x86 0x82
-+# CHECK: vst1.32	{d8, d9, d10, d11}, [r4], r6 
-+0x04 0xf9 0xc6 0x82
-+# CHECK: vst1.64	{d8, d9, d10, d11}, [r4], r6 
-+
-+0x04 0xf9 0x0d 0x88
-+# CHECK: vst2.8	{d8, d9}, [r4]!         
-+0x04 0xf9 0x4d 0x88
-+# CHECK: vst2.16	{d8, d9}, [r4]!         
-+0x04 0xf9 0x8d 0x88
-+# CHECK: vst2.32	{d8, d9}, [r4]!         
-+0x04 0xf9 0x06 0x88
-+# CHECK: vst2.8	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x46 0x88
-+# CHECK: vst2.16	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x86 0x88
-+# CHECK: vst2.32	{d8, d9}, [r4], r6      
-+
-+0x04 0xf9 0x0d 0x89
-+# CHECK: vst2.8	{d8, d10}, [r4]!        
-+0x04 0xf9 0x4d 0x89
-+# CHECK: vst2.16	{d8, d10}, [r4]!        
-+0x04 0xf9 0x8d 0x89
-+# CHECK: vst2.32	{d8, d10}, [r4]!        
-+0x04 0xf9 0x06 0x89
-+# CHECK: vst2.8	{d8, d10}, [r4], r6     
-+0x04 0xf9 0x46 0x89
-+# CHECK: vst2.16	{d8, d10}, [r4], r6     
-+0x04 0xf9 0x86 0x89
-+# CHECK: vst2.32	{d8, d10}, [r4], r6     
-+
-+0x04 0xf9 0x0d 0x84
-+# CHECK: vst3.8	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x4d 0x84
-+# CHECK: vst3.16	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x8d 0x84
-+# CHECK: vst3.32	{d8, d9, d10}, [r4]!    
-+0x04 0xf9 0x06 0x85
-+# CHECK: vst3.8	{d8, d10, d12}, [r4], r6 
-+0x04 0xf9 0x46 0x85
-+# CHECK: vst3.16	{d8, d10, d12}, [r4], r6 
-+0x04 0xf9 0x86 0x85
-+# CHECK: vst3.32	{d8, d10, d12}, [r4], r6 
-+
-+0x04 0xf9 0x0d 0x80
-+# CHECK: vst4.8	{d8, d9, d10, d11}, [r4]!
-+0x04 0xf9 0x4d 0x80
-+# CHECK: vst4.16	{d8, d9, d10, d11}, [r4]!
-+0x04 0xf9 0x8d 0x80
-+# CHECK: vst4.32	{d8, d9, d10, d11}, [r4]!
-+0x04 0xf9 0x06 0x81
-+# CHECK: vst4.8	{d8, d10, d12, d14}, [r4], r6
-+0x04 0xf9 0x46 0x81
-+# CHECK: vst4.16	{d8, d10, d12, d14}, [r4], r6
-+0x04 0xf9 0x86 0x81
-+# CHECK: vst4.32	{d8, d10, d12, d14}, [r4], r6
-+
-+0x04 0xf9 0x4f 0x8a
-+# CHECK: vst1.16	{d8, d9}, [r4]          
-+0x04 0xf9 0x8f 0x8a
-+# CHECK: vst1.32	{d8, d9}, [r4]          
-+0x04 0xf9 0xcf 0x8a
-+# CHECK: vst1.64	{d8, d9}, [r4]          
-+0x04 0xf9 0x0f 0x8a
-+# CHECK: vst1.8	{d8, d9}, [r4]          
-+0x04 0xf9 0x4f 0x88
-+# CHECK: vst2.16	{d8, d9}, [r4]          
-+0x04 0xf9 0x8f 0x88
-+# CHECK: vst2.32	{d8, d9}, [r4]          
-+0x04 0xf9 0x0f 0x88
-+# CHECK: vst2.8	{d8, d9}, [r4]          
-+0x04 0xf9 0x4d 0x88
-+# CHECK: vst2.16	{d8, d9}, [r4]!         
-+0x04 0xf9 0x46 0x88
-+# CHECK: vst2.16	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x8d 0x88
-+# CHECK: vst2.32	{d8, d9}, [r4]!         
-+0x04 0xf9 0x86 0x88
-+# CHECK: vst2.32	{d8, d9}, [r4], r6      
-+0x04 0xf9 0x0d 0x88
-+# CHECK: vst2.8	{d8, d9}, [r4]!         
-+0x04 0xf9 0x06 0x88
-+# CHECK: vst2.8	{d8, d9}, [r4], r6      
-+
-+0x04 0xf9 0x4f 0x89
-+# CHECK: vst2.16	{d8, d10}, [r4]        
-+0x04 0xf9 0x8f 0x89
-+# CHECK: vst2.32	{d8, d10}, [r4]        
-+0x04 0xf9 0x0f 0x89
-+# CHECK: vst2.8	{d8, d10}, [r4]        
-+
-+0x04 0xf9 0x0f 0x84
-+# CHECK: vst3.8	{d8, d9, d10}, [r4]    
-+0x04 0xf9 0x4f 0x84
-+# CHECK: vst3.16	{d8, d9, d10}, [r4]    
-+0x04 0xf9 0x8f 0x84
-+# CHECK: vst3.32	{d8, d9, d10}, [r4]    
-+
-+0x04 0xf9 0x0f 0x80
-+# CHECK: vst4.8	{d8, d9, d10, d11}, [r4]
-+0x04 0xf9 0x4f 0x80
-+# CHECK: vst4.16	{d8, d9, d10, d11}, [r4]
-+0x04 0xf9 0x8f 0x80
-+# CHECK: vst4.32	{d8, d9, d10, d11}, [r4]
-+
-+0x04 0xf9 0x0f 0x85
-+# CHECK: vst3.8	{d8, d10, d12}, [r4]   
-+0x04 0xf9 0x4f 0x85
-+# CHECK: vst3.16	{d8, d10, d12}, [r4]   
-+0x04 0xf9 0x8f 0x85
-+# CHECK: vst3.32	{d8, d10, d12}, [r4]   
-+
-+0x04 0xf9 0x0f 0x81
-+# CHECK: vst4.8	{d8, d10, d12, d14}, [r4]
-+0x04 0xf9 0x4f 0x81
-+# CHECK: vst4.16	{d8, d10, d12, d14}, [r4]
-+0x04 0xf9 0x8f 0x81
-+# CHECK: vst4.32	{d8, d10, d12, d14}, [r4]
-Index: test/MC/Disassembler/ARM/neon.txt
-===================================================================
---- test/MC/Disassembler/ARM/neon.txt	(revision 152265)
-+++ test/MC/Disassembler/ARM/neon.txt	(working copy)
-@@ -1876,3 +1876,188 @@
- # CHECK vld2.8	{d17[], d19[]}, [r7, :16]!
- 0xe7 0xf9 0x3f 0x1d
- # CHECK vld2.8	{d17[], d19[]}, [r7, :16]
-+
-+# rdar://11034702
-+0x0d 0x87 0x04 0xf4
-+# CHECK: vst1.8	{d8}, [r4]!            
-+0x4d 0x87 0x04 0xf4
-+# CHECK: vst1.16	{d8}, [r4]!             
-+0x8d 0x87 0x04 0xf4
-+# CHECK: vst1.32	{d8}, [r4]!             
-+0xcd 0x87 0x04 0xf4
-+# CHECK: vst1.64	{d8}, [r4]!             
-+0x06 0x87 0x04 0xf4
-+# CHECK: vst1.8	{d8}, [r4], r6          
-+0x46 0x87 0x04 0xf4
-+# CHECK: vst1.16	{d8}, [r4], r6          
-+0x86 0x87 0x04 0xf4
-+# CHECK: vst1.32	{d8}, [r4], r6          
-+0xc6 0x87 0x04 0xf4
-+# CHECK: vst1.64	{d8}, [r4], r6          
-+
-+0x0d 0x8a 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9}, [r4]!         
-+0x4d 0x8a 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9}, [r4]!         
-+0x8d 0x8a 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9}, [r4]!         
-+0xcd 0x8a 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9}, [r4]!         
-+0x06 0x8a 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9}, [r4], r6      
-+0x46 0x8a 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9}, [r4], r6      
-+0x86 0x8a 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9}, [r4], r6      
-+0xc6 0x8a 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9}, [r4], r6      
-+
-+0x0d 0x86 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9, d10}, [r4]!    
-+0x4d 0x86 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9, d10}, [r4]!    
-+0x8d 0x86 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9, d10}, [r4]!    
-+0xcd 0x86 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9, d10}, [r4]!    
-+0x06 0x86 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9, d10}, [r4], r6 
-+0x46 0x86 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9, d10}, [r4], r6 
-+0x86 0x86 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9, d10}, [r4], r6 
-+0xc6 0x86 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9, d10}, [r4], r6 
-+
-+0x0d 0x82 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9, d10, d11}, [r4]! 
-+0x4d 0x82 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9, d10, d11}, [r4]! 
-+0x8d 0x82 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9, d10, d11}, [r4]! 
-+0xcd 0x82 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9, d10, d11}, [r4]! 
-+0x06 0x82 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9, d10, d11}, [r4], r6 
-+0x46 0x82 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9, d10, d11}, [r4], r6 
-+0x86 0x82 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9, d10, d11}, [r4], r6 
-+0xc6 0x82 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9, d10, d11}, [r4], r6 
-+
-+0x0d 0x88 0x04 0xf4
-+# CHECK: vst2.8	{d8, d9}, [r4]!         
-+0x4d 0x88 0x04 0xf4
-+# CHECK: vst2.16	{d8, d9}, [r4]!         
-+0x8d 0x88 0x04 0xf4
-+# CHECK: vst2.32	{d8, d9}, [r4]!         
-+0x06 0x88 0x04 0xf4
-+# CHECK: vst2.8	{d8, d9}, [r4], r6      
-+0x46 0x88 0x04 0xf4
-+# CHECK: vst2.16	{d8, d9}, [r4], r6      
-+0x86 0x88 0x04 0xf4
-+# CHECK: vst2.32	{d8, d9}, [r4], r6      
-+
-+0x0d 0x89 0x04 0xf4
-+# CHECK: vst2.8	{d8, d10}, [r4]!        
-+0x4d 0x89 0x04 0xf4
-+# CHECK: vst2.16	{d8, d10}, [r4]!        
-+0x8d 0x89 0x04 0xf4
-+# CHECK: vst2.32	{d8, d10}, [r4]!        
-+0x06 0x89 0x04 0xf4
-+# CHECK: vst2.8	{d8, d10}, [r4], r6     
-+0x46 0x89 0x04 0xf4
-+# CHECK: vst2.16	{d8, d10}, [r4], r6     
-+0x86 0x89 0x04 0xf4
-+# CHECK: vst2.32	{d8, d10}, [r4], r6     
-+
-+0x0d 0x84 0x04 0xf4
-+# CHECK: vst3.8	{d8, d9, d10}, [r4]!    
-+0x4d 0x84 0x04 0xf4
-+# CHECK: vst3.16	{d8, d9, d10}, [r4]!    
-+0x8d 0x84 0x04 0xf4
-+# CHECK: vst3.32	{d8, d9, d10}, [r4]!    
-+0x06 0x85 0x04 0xf4
-+# CHECK: vst3.8	{d8, d10, d12}, [r4], r6 
-+0x46 0x85 0x04 0xf4
-+# CHECK: vst3.16	{d8, d10, d12}, [r4], r6 
-+0x86 0x85 0x04 0xf4
-+# CHECK: vst3.32	{d8, d10, d12}, [r4], r6 
-+
-+0x0d 0x80 0x04 0xf4
-+# CHECK: vst4.8	{d8, d9, d10, d11}, [r4]! 
-+0x4d 0x80 0x04 0xf4
-+# CHECK: vst4.16	{d8, d9, d10, d11}, [r4]! 
-+0x8d 0x80 0x04 0xf4
-+# CHECK: vst4.32	{d8, d9, d10, d11}, [r4]! 
-+0x06 0x81 0x04 0xf4
-+# CHECK: vst4.8	{d8, d10, d12, d14}, [r4], r6 
-+0x46 0x81 0x04 0xf4
-+# CHECK: vst4.16	{d8, d10, d12, d14}, [r4], r6 
-+0x86 0x81 0x04 0xf4
-+# CHECK: vst4.32	{d8, d10, d12, d14}, [r4], r6 
-+
-+0x4f 0x8a 0x04 0xf4
-+# CHECK: vst1.16	{d8, d9}, [r4]          
-+0x8f 0x8a 0x04 0xf4
-+# CHECK: vst1.32	{d8, d9}, [r4]          
-+0xcf 0x8a 0x04 0xf4
-+# CHECK: vst1.64	{d8, d9}, [r4]          
-+0x0f 0x8a 0x04 0xf4
-+# CHECK: vst1.8	{d8, d9}, [r4]          
-+
-+0x4f 0x88 0x04 0xf4
-+# CHECK: vst2.16	{d8, d9}, [r4]          
-+0x8f 0x88 0x04 0xf4
-+# CHECK: vst2.32	{d8, d9}, [r4]          
-+0x0f 0x88 0x04 0xf4
-+# CHECK: vst2.8	{d8, d9}, [r4]          
-+
-+0x4d 0x88 0x04 0xf4
-+# CHECK: vst2.16	{d8, d9}, [r4]!         
-+0x46 0x88 0x04 0xf4
-+# CHECK: vst2.16	{d8, d9}, [r4], r6      
-+0x8d 0x88 0x04 0xf4
-+# CHECK: vst2.32	{d8, d9}, [r4]!         
-+0x86 0x88 0x04 0xf4
-+# CHECK: vst2.32	{d8, d9}, [r4], r6      
-+0x0d 0x88 0x04 0xf4
-+# CHECK: vst2.8	{d8, d9}, [r4]!         
-+0x06 0x88 0x04 0xf4
-+# CHECK: vst2.8	{d8, d9}, [r4], r6      
-+
-+0x4f 0x89 0x04 0xf4
-+# CHECK: vst2.16	{d8, d10}, [r4]         
-+0x8f 0x89 0x04 0xf4
-+# CHECK: vst2.32	{d8, d10}, [r4]         
-+0x0f 0x89 0x04 0xf4
-+# CHECK: vst2.8	{d8, d10}, [r4]         
-+
-+0x0f 0x84 0x04 0xf4
-+# CHECK: vst3.8	{d8, d9, d10}, [r4]     
-+0x4f 0x84 0x04 0xf4
-+# CHECK: vst3.16	{d8, d9, d10}, [r4]     
-+0x8f 0x84 0x04 0xf4
-+# CHECK: vst3.32	{d8, d9, d10}, [r4]     
-+
-+0x0f 0x80 0x04 0xf4
-+# CHECK: vst4.8	{d8, d9, d10, d11}, [r4] 
-+0x4f 0x80 0x04 0xf4
-+# CHECK: vst4.16	{d8, d9, d10, d11}, [r4] 
-+0x8f 0x80 0x04 0xf4
-+# CHECK: vst4.32	{d8, d9, d10, d11}, [r4] 
-+
-+0x0f 0x85 0x04 0xf4
-+# CHECK: vst3.8	{d8, d10, d12}, [r4]    
-+0x4f 0x85 0x04 0xf4
-+# CHECK: vst3.16	{d8, d10, d12}, [r4]    
-+0x8f 0x85 0x04 0xf4
-+# CHECK: vst3.32	{d8, d10, d12}, [r4]    
-+
-+0x0f 0x81 0x04 0xf4
-+# CHECK: vst4.8	{d8, d10, d12, d14}, [r4] 
-+0x4f 0x81 0x04 0xf4
-+# CHECK: vst4.16	{d8, d10, d12, d14}, [r4] 
-+0x8f 0x81 0x04 0xf4
-+# CHECK: vst4.32	{d8, d10, d12, d14}, [r4] 
-Index: lib/Target/ARM/Disassembler/ARMDisassembler.cpp
-===================================================================
---- lib/Target/ARM/Disassembler/ARMDisassembler.cpp	(revision 152265)
-+++ lib/Target/ARM/Disassembler/ARMDisassembler.cpp	(working copy)
-@@ -2313,6 +2313,8 @@
-     case ARM::VST2b8wb_register:
-     case ARM::VST2b16wb_register:
-     case ARM::VST2b32wb_register:
-+      Inst.addOperand(MCOperand::CreateImm(0));
-+      break;
-     case ARM::VST3d8_UPD:
-     case ARM::VST3d16_UPD:
-     case ARM::VST3d32_UPD:
-@@ -2354,6 +2356,23 @@
-     case ARM::VST1q16wb_fixed:
-     case ARM::VST1q32wb_fixed:
-     case ARM::VST1q64wb_fixed:
-+    case ARM::VST1d8Twb_fixed:
-+    case ARM::VST1d16Twb_fixed:
-+    case ARM::VST1d32Twb_fixed:
-+    case ARM::VST1d64Twb_fixed:
-+    case ARM::VST1d8Qwb_fixed:
-+    case ARM::VST1d16Qwb_fixed:
-+    case ARM::VST1d32Qwb_fixed:
-+    case ARM::VST1d64Qwb_fixed:
-+    case ARM::VST2d8wb_fixed:
-+    case ARM::VST2d16wb_fixed:
-+    case ARM::VST2d32wb_fixed:
-+    case ARM::VST2q8wb_fixed:
-+    case ARM::VST2q16wb_fixed:
-+    case ARM::VST2q32wb_fixed:
-+    case ARM::VST2b8wb_fixed:
-+    case ARM::VST2b16wb_fixed:
-+    case ARM::VST2b32wb_fixed:
-       break;
-   }
- 

Modified: lldb/branches/lldb-platform-work/source/API/SBFrame.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/API/SBFrame.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/API/SBFrame.cpp (original)
+++ lldb/branches/lldb-platform-work/source/API/SBFrame.cpp Fri Apr 13 19:59:04 2012
@@ -883,11 +883,8 @@
 
             size_t i;
             VariableList *variable_list = NULL;
-            // Scope for locker
-            {
-                Mutex::Locker api_locker (target->GetAPIMutex());
-                variable_list = frame->GetVariableList(true);
-            }
+            Mutex::Locker api_locker (target->GetAPIMutex());
+            variable_list = frame->GetVariableList(true);
             if (variable_list)
             {
                 const size_t num_variables = variable_list->GetSize();

Modified: lldb/branches/lldb-platform-work/source/Host/common/Mutex.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Host/common/Mutex.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Host/common/Mutex.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Host/common/Mutex.cpp Fri Apr 13 19:59:04 2012
@@ -74,6 +74,7 @@
         case eMutexActionAssertInitialized:
             // This function will return true if "m" is in the initialized mutex set
             success = g_initialized_mutex_set.find(m) != g_initialized_mutex_set.end();
+            assert (success);
             break;
     }
     // Manually call unlock so we don't to any of this error checking

Modified: lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp Fri Apr 13 19:59:04 2012
@@ -46,6 +46,41 @@
 }
 
 void
+GDBRemoteCommunication::History::AddPacket (char packet_char,
+                                            PacketType type,
+                                            uint32_t bytes_transmitted)
+{
+    const size_t size = m_packets.size();
+    if (size > 0)
+    {
+        const uint32_t idx = GetNextIndex();
+        m_packets[idx].packet.assign (1, packet_char);
+        m_packets[idx].type = type;
+        m_packets[idx].bytes_transmitted = bytes_transmitted;
+        m_packets[idx].packet_idx = m_total_packet_count;
+        m_packets[idx].tid = Host::GetCurrentThreadID();
+    }
+}
+
+void
+GDBRemoteCommunication::History::AddPacket (const std::string &src,
+                                            uint32_t src_len,
+                                            PacketType type,
+                                            uint32_t bytes_transmitted)
+{
+    const size_t size = m_packets.size();
+    if (size > 0)
+    {
+        const uint32_t idx = GetNextIndex();
+        m_packets[idx].packet.assign (src, 0, src_len);
+        m_packets[idx].type = type;
+        m_packets[idx].bytes_transmitted = bytes_transmitted;
+        m_packets[idx].packet_idx = m_total_packet_count;
+        m_packets[idx].tid = Host::GetCurrentThreadID();
+    }
+}
+
+void
 GDBRemoteCommunication::History::Dump (lldb_private::Stream &strm) const
 {
     const uint32_t size = GetNumPacketsInHistory ();
@@ -57,8 +92,9 @@
         const Entry &entry = m_packets[idx];
         if (entry.type == ePacketTypeInvalid || entry.packet.empty())
             break;
-        strm.Printf ("history[%u] <%4u> %s packet: %s\n",
+        strm.Printf ("history[%u] tid=0x%4.4llx <%4u> %s packet: %s\n",
                      entry.packet_idx,
+                     entry.tid,
                      entry.bytes_transmitted,
                      (entry.type == ePacketTypeSend) ? "send" : "read",
                      entry.packet.c_str());
@@ -80,8 +116,9 @@
             const Entry &entry = m_packets[idx];
             if (entry.type == ePacketTypeInvalid || entry.packet.empty())
                 break;
-            log->Printf ("history[%u] <%4u> %s packet: %s",
+            log->Printf ("history[%u] tid=0x%4.4llx <%4u> %s packet: %s",
                          entry.packet_idx,
+                         entry.tid,
                          entry.bytes_transmitted,
                          (entry.type == ePacketTypeSend) ? "send" : "read",
                          entry.packet.c_str());
@@ -602,12 +639,7 @@
 }
 
 void
-GDBRemoteCommunication::DumpHistory(const char *path)
+GDBRemoteCommunication::DumpHistory(Stream &strm)
 {
-    StreamFile strm;
-    Error error (strm.GetFile().Open(path, File::eOpenOptionWrite | File::eOpenOptionCanCreate));
-    if (error.Success())
-        m_history.Dump (strm);
-    else
-        fprintf (stderr, "error: unable to open '%s' -- %s\n", path, error.AsCString());
+    m_history.Dump (strm);
 }

Modified: lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h (original)
+++ lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h Fri Apr 13 19:59:04 2012
@@ -114,7 +114,7 @@
                              lldb_private::ProcessLaunchInfo &launch_info); 
 
     void
-    DumpHistory(const char *path);
+    DumpHistory(lldb_private::Stream &strm);
     
 protected:
 
@@ -134,7 +134,8 @@
                 packet(),
                 type (ePacketTypeInvalid),
                 bytes_transmitted (0),
-                packet_idx (0)
+                packet_idx (0),
+                tid (LLDB_INVALID_THREAD_ID)
             {
             }
             
@@ -145,12 +146,13 @@
                 type = ePacketTypeInvalid;
                 bytes_transmitted = 0;
                 packet_idx = 0;
-                
+                tid = LLDB_INVALID_THREAD_ID;
             }
             std::string packet;
             PacketType type;
             uint32_t bytes_transmitted;
             uint32_t packet_idx;
+            lldb::tid_t tid;
         };
 
         History (uint32_t size);
@@ -161,35 +163,12 @@
         void
         AddPacket (char packet_char,
                    PacketType type,
-                   uint32_t bytes_transmitted)
-        {
-            const size_t size = m_packets.size();
-            if (size > 0)
-            {
-                const uint32_t idx = GetNextIndex();
-                m_packets[idx].packet.assign (1, packet_char);
-                m_packets[idx].type = type;
-                m_packets[idx].bytes_transmitted = bytes_transmitted;
-                m_packets[idx].packet_idx = m_total_packet_count;
-            }
-        }
-
+                   uint32_t bytes_transmitted);
         void
         AddPacket (const std::string &src,
                    uint32_t src_len,
                    PacketType type,
-                   uint32_t bytes_transmitted)
-        {
-            const size_t size = m_packets.size();
-            if (size > 0)
-            {
-                const uint32_t idx = GetNextIndex();
-                m_packets[idx].packet.assign (src, 0, src_len);
-                m_packets[idx].type = type;
-                m_packets[idx].bytes_transmitted = bytes_transmitted;
-                m_packets[idx].packet_idx = m_total_packet_count;
-            }
-        }
+                   uint32_t bytes_transmitted);
         
         void
         Dump (lldb_private::Stream &strm) const;

Modified: lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp Fri Apr 13 19:59:04 2012
@@ -246,7 +246,18 @@
         {
             LogSP log (ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet (GDBR_LOG_THREAD | GDBR_LOG_PACKETS));
             if (log)
-                log->Printf("error: failed to get packet sequence mutex, not sending read register for \"%s\"", reg_info->name);
+            {
+                if (log->GetVerbose())
+                {
+                    StreamString strm;
+                    gdb_comm.DumpHistory(strm);
+                    log->Printf("error: failed to get packet sequence mutex, not sending read register for \"%s\":\n%s", reg_info->name, strm.GetData());
+                }
+                else
+                {
+                    log->Printf("error: failed to get packet sequence mutex, not sending read register for \"%s\"", reg_info->name);
+                }
+            }
         }
 
         // Make sure we got a valid register value after reading it
@@ -431,7 +442,16 @@
         {
             LogSP log (ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet (GDBR_LOG_THREAD | GDBR_LOG_PACKETS));
             if (log)
-                log->Printf("error: failed to get packet sequence mutex, not sending write register for \"%s\"", reg_info->name);
+            {
+                if (log->GetVerbose())
+                {
+                    StreamString strm;
+                    gdb_comm.DumpHistory(strm);
+                    log->Printf("error: failed to get packet sequence mutex, not sending write register for \"%s\":\n%s", reg_info->name, strm.GetData());
+                }
+                else
+                    log->Printf("error: failed to get packet sequence mutex, not sending write register for \"%s\"", reg_info->name);
+            }
         }
     }
     return false;
@@ -492,7 +512,16 @@
     {
         LogSP log (ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet (GDBR_LOG_THREAD | GDBR_LOG_PACKETS));
         if (log)
-            log->Printf("error: failed to get packet sequence mutex, not sending read all registers");
+        {
+            if (log->GetVerbose())
+            {
+                StreamString strm;
+                gdb_comm.DumpHistory(strm);
+                log->Printf("error: failed to get packet sequence mutex, not sending read all registers:\n%s", strm.GetData());
+            }
+            else
+                log->Printf("error: failed to get packet sequence mutex, not sending read all registers");
+        }
     }
 
     data_sp.reset();
@@ -616,7 +645,16 @@
     {
         LogSP log (ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet (GDBR_LOG_THREAD | GDBR_LOG_PACKETS));
         if (log)
-            log->Printf("error: failed to get packet sequence mutex, not sending write all registers");
+        {
+            if (log->GetVerbose())
+            {
+                StreamString strm;
+                gdb_comm.DumpHistory(strm);
+                log->Printf("error: failed to get packet sequence mutex, not sending write all registers:\n%s", strm.GetData());
+            }
+            else
+                log->Printf("error: failed to get packet sequence mutex, not sending write all registers");
+        }
     }
     return false;
 }

Modified: lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Fri Apr 13 19:59:04 2012
@@ -32,6 +32,7 @@
 #include "lldb/Core/Module.h"
 #include "lldb/Core/PluginManager.h"
 #include "lldb/Core/State.h"
+#include "lldb/Core/StreamFile.h"
 #include "lldb/Core/StreamString.h"
 #include "lldb/Core/Timer.h"
 #include "lldb/Core/Value.h"
@@ -64,7 +65,10 @@
     void
     DumpProcessGDBRemotePacketHistory (void *p, const char *path)
     {
-        ((ProcessGDBRemote *)p)->GetGDBRemote().DumpHistory (path);
+        lldb_private::StreamFile strm;
+        lldb_private::Error error (strm.GetFile().Open(path, lldb_private::File::eOpenOptionWrite | lldb_private::File::eOpenOptionCanCreate));
+        if (error.Success())
+            ((ProcessGDBRemote *)p)->GetGDBRemote().DumpHistory (strm);
     }
 };
 

Modified: lldb/branches/lldb-platform-work/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Target/Process.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Target/Process.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Target/Process.cpp Fri Apr 13 19:59:04 2012
@@ -4033,7 +4033,7 @@
             if (!got_event)
             {
                 if (log)
-                    log->PutCString("Didn't get any event after initial resume, exiting.");
+                    log->PutCString("Process::RunThreadPlan(): didn't get any event after initial resume, exiting.");
 
                 errors.Printf("Didn't get any event after initial resume, exiting.");
                 return_value = eExecutionSetupError;
@@ -4044,7 +4044,7 @@
             if (stop_state != eStateRunning)
             {
                 if (log)
-                    log->Printf("Didn't get running event after initial resume, got %s instead.", StateAsCString(stop_state));
+                    log->Printf("Process::RunThreadPlan(): didn't get running event after initial resume, got %s instead.", StateAsCString(stop_state));
 
                 errors.Printf("Didn't get running event after initial resume, got %s instead.", StateAsCString(stop_state));
                 return_value = eExecutionSetupError;
@@ -4052,7 +4052,7 @@
             }
         
             if (log)
-                log->PutCString ("Resuming succeeded.");
+                log->PutCString ("Process::RunThreadPlan(): resuming succeeded.");
             // We need to call the function synchronously, so spin waiting for it to return.
             // If we get interrupted while executing, we're going to lose our context, and
             // won't be able to gather the result at this point.
@@ -4062,10 +4062,7 @@
             if (single_thread_timeout_usec != 0)
             {
                 real_timeout = TimeValue::Now();
-                if (first_timeout)
-                    real_timeout.OffsetWithMicroSeconds(single_thread_timeout_usec);
-                else
-                    real_timeout.OffsetWithSeconds(10);
+                real_timeout.OffsetWithMicroSeconds(single_thread_timeout_usec);
                     
                 timeout_ptr = &real_timeout;
             }
@@ -4073,13 +4070,31 @@
         else
         {
             if (log)
-                log->PutCString ("Handled an extra running event.");
+                log->PutCString ("Process::RunThreadPlan(): handled an extra running event.");
             do_resume = true;
         }
         
         // Now wait for the process to stop again:
         stop_state = lldb::eStateInvalid;
         event_sp.reset();
+
+        if (log)
+        {
+            if (timeout_ptr)
+            {
+                StreamString s;
+                s.Printf ("about to wait - timeout is:\n   ");
+                timeout_ptr->Dump (&s, 120);
+                s.Printf ("\nNow is:\n    ");
+                TimeValue::Now().Dump (&s, 120);
+                log->Printf ("Process::RunThreadPlan(): %s", s.GetData());
+            }
+            else
+            {
+                log->Printf ("Process::RunThreadPlan(): about to wait forever.");
+            }
+        }
+        
         got_event = listener.WaitForEvent (timeout_ptr, event_sp);
         
         if (got_event)
@@ -4089,7 +4104,7 @@
                 bool keep_going = false;
                 stop_state = Process::ProcessEventData::GetStateFromEvent(event_sp.get());
                 if (log)
-                    log->Printf("In while loop, got event: %s.", StateAsCString(stop_state));
+                    log->Printf("Process::RunThreadPlan(): in while loop, got event: %s.", StateAsCString(stop_state));
                     
                 switch (stop_state)
                 {
@@ -4101,7 +4116,7 @@
                         {
                             // Ooh, our thread has vanished.  Unlikely that this was successful execution...
                             if (log)
-                                log->Printf ("Execution completed but our thread (index-id=%u) has vanished.", thread_idx_id);
+                                log->Printf ("Process::RunThreadPlan(): execution completed but our thread (index-id=%u) has vanished.", thread_idx_id);
                             return_value = eExecutionInterrupted;
                         }
                         else
@@ -4113,7 +4128,7 @@
                             if (stop_reason == eStopReasonPlanComplete)
                             {
                                 if (log)
-                                    log->PutCString ("Execution completed successfully.");
+                                    log->PutCString ("Process::RunThreadPlan(): execution completed successfully.");
                                 // Now mark this plan as private so it doesn't get reported as the stop reason
                                 // after this point.  
                                 if (thread_plan_sp)
@@ -4123,7 +4138,7 @@
                             else
                             {
                                 if (log)
-                                    log->PutCString ("Thread plan didn't successfully complete.");
+                                    log->PutCString ("Process::RunThreadPlan(): thread plan didn't successfully complete.");
 
                                 return_value = eExecutionInterrupted;
                             }
@@ -4133,7 +4148,7 @@
 
                 case lldb::eStateCrashed:
                     if (log)
-                        log->PutCString ("Execution crashed.");
+                        log->PutCString ("Process::RunThreadPlan(): execution crashed.");
                     return_value = eExecutionInterrupted;
                     break;
 
@@ -4144,7 +4159,7 @@
 
                 default:
                     if (log)
-                        log->Printf("Execution stopped with unexpected state: %s.", StateAsCString(stop_state));
+                        log->Printf("Process::RunThreadPlan(): execution stopped with unexpected state: %s.", StateAsCString(stop_state));
                         
                     errors.Printf ("Execution stopped with unexpected state.");
                     return_value = eExecutionInterrupted;
@@ -4158,7 +4173,7 @@
             else
             {
                 if (log)
-                    log->PutCString ("got_event was true, but the event pointer was null.  How odd...");
+                    log->PutCString ("Process::RunThreadPlan(): got_event was true, but the event pointer was null.  How odd...");
                 return_value = eExecutionInterrupted;
                 break;
             }
@@ -4229,7 +4244,7 @@
                         if (!try_all_threads)
                         {
                             if (log)
-                                log->PutCString ("try_all_threads was false, we stopped so now we're quitting.");
+                                log->PutCString ("Process::RunThreadPlan(): try_all_threads was false, we stopped so now we're quitting.");
                             return_value = eExecutionInterrupted;
                             break;
                         }
@@ -4240,7 +4255,7 @@
                             first_timeout = false;
                             thread_plan_sp->SetStopOthers (false);
                             if (log)
-                                log->PutCString ("Process::RunThreadPlan(): About to resume.");
+                                log->PutCString ("Process::RunThreadPlan(): about to resume.");
 
                             continue;
                         }
@@ -4434,9 +4449,17 @@
                 
             if (discard_on_error && thread_plan_sp)
             {
+                if (log)
+                    log->Printf ("Process::RunThreadPlan: ExecutionInterrupted - discarding thread plans up to %p.", thread_plan_sp.get());
                 thread->DiscardThreadPlansUpToPlan (thread_plan_sp);
                 thread_plan_sp->SetPrivate (orig_plan_private);
             }
+            else
+            {
+                if (log)
+                    log->Printf ("Process::RunThreadPlan: ExecutionInterrupted - for plan: %p not discarding.", thread_plan_sp.get());
+
+            }
         }
     }
     else if (return_value == eExecutionSetupError)

Modified: lldb/branches/lldb-platform-work/source/Target/ThreadPlanCallFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/lldb-platform-work/source/Target/ThreadPlanCallFunction.cpp?rev=154725&r1=154724&r2=154725&view=diff
==============================================================================
--- lldb/branches/lldb-platform-work/source/Target/ThreadPlanCallFunction.cpp (original)
+++ lldb/branches/lldb-platform-work/source/Target/ThreadPlanCallFunction.cpp Fri Apr 13 19:59:04 2012
@@ -57,7 +57,7 @@
     
     TargetSP target_sp (thread.CalculateTarget());
 
-    LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
+    LogSP log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_STEP));
     
     SetBreakpoints();
     
@@ -69,7 +69,7 @@
     if (!error.Success())
     {
         if (log)
-            log->Printf ("Trying to put the stack in unreadable memory at: 0x%llx.", m_function_sp);
+            log->Printf ("ThreadPlanCallFunction(%p): Trying to put the stack in unreadable memory at: 0x%llx.", this, m_function_sp);
         return false;
     }
     
@@ -78,7 +78,7 @@
     if (exe_module == NULL)
     {
         if (log)
-            log->Printf ("Can't execute code without an executable module.");
+            log->Printf ("ThreadPlanCallFunction(%p): Can't execute code without an executable module.", this);
         return false;
     }
     else
@@ -87,16 +87,16 @@
         if (!objectFile)
         {
             if (log)
-                log->Printf ("Could not find object file for module \"%s\".", 
-                             exe_module->GetFileSpec().GetFilename().AsCString());
+                log->Printf ("ThreadPlanCallFunction(%p): Could not find object file for module \"%s\".", 
+                             this, exe_module->GetFileSpec().GetFilename().AsCString());
             return false;
         }
         m_start_addr = objectFile->GetEntryPointAddress();
         if (!m_start_addr.IsValid())
         {
             if (log)
-                log->Printf ("Could not find entry point address for executable module \"%s\".", 
-                             exe_module->GetFileSpec().GetFilename().AsCString());
+                log->Printf ("ThreadPlanCallFunction(%p): Could not find entry point address for executable module \"%s\".", 
+                             this, exe_module->GetFileSpec().GetFilename().AsCString());
             return false;
         }
     }
@@ -110,7 +110,7 @@
     if (!thread.CheckpointThreadState (m_stored_thread_state))
     {
         if (log)
-            log->Printf ("Setting up ThreadPlanCallFunction, failed to checkpoint thread state.");
+            log->Printf ("ThreadPlanCallFunction(%p): Setting up ThreadPlanCallFunction, failed to checkpoint thread state.", this);
         return false;
     }
     // Now set the thread state to "no reason" so we don't run with whatever signal was outstanding...
@@ -262,7 +262,16 @@
 void
 ThreadPlanCallFunction::DoTakedown ()
 {
-    LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
+    LogSP log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_STEP));
+    
+    if (!m_valid)
+    {
+        //Don't call DoTakedown if we were never valid to begin with.
+        if (log)
+            log->Printf ("ThreadPlanCallFunction(%p): Log called on ThreadPlanCallFunction that was never valid.", this);
+        return;
+    }
+    
     if (!m_takedown_done)
     {
         ProcessSP process_sp (m_thread.GetProcess());
@@ -274,7 +283,7 @@
         }
 
         if (log)
-            log->Printf ("DoTakedown called for thread 0x%4.4llx, m_valid: %d complete: %d.\n", m_thread.GetID(), m_valid, IsPlanComplete());
+            log->Printf ("ThreadPlanCallFunction(%p): DoTakedown called for thread 0x%4.4llx, m_valid: %d complete: %d.\n", this, m_thread.GetID(), m_valid, IsPlanComplete());
         m_takedown_done = true;
         m_stop_address = m_thread.GetStackFrameAtIndex(0)->GetRegisterContext()->GetPC();
         m_real_stop_info_sp = GetPrivateStopReason();
@@ -288,7 +297,7 @@
     else
     {
         if (log)
-            log->Printf ("DoTakedown called as no-op for thread 0x%4.4llx, m_valid: %d complete: %d.\n", m_thread.GetID(), m_valid, IsPlanComplete());
+            log->Printf ("ThreadPlanCallFunction(%p): DoTakedown called as no-op for thread 0x%4.4llx, m_valid: %d complete: %d.\n", this, m_thread.GetID(), m_valid, IsPlanComplete());
     }
 }
 
@@ -447,7 +456,7 @@
         LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
 
         if (log)
-            log->Printf("Completed call function plan.");
+            log->Printf("ThreadPlanCallFunction(%p): Completed call function plan.", this);
 
         ThreadPlan::MischiefManaged ();
         return true;





More information about the lldb-commits mailing list