[Lldb-commits] [lldb] r156643 - in /lldb/branches/apple/python-GIL: ./ include/lldb/Target/ scripts/Python/ scripts/Python/interface/ source/Expression/ source/Interpreter/ source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/ source/Plugins/Process/Utility/ source/Target/ test/expression_command/issue_11588/ www/
Filipe Cabecinhas
me at filcab.net
Fri May 11 14:06:13 PDT 2012
Author: filcab
Date: Fri May 11 16:06:13 2012
New Revision: 156643
URL: http://llvm.org/viewvc/llvm-project?rev=156643&view=rev
Log:
Merge changed from ToT trunk.
Modified:
lldb/branches/apple/python-GIL/ (props changed)
lldb/branches/apple/python-GIL/include/lldb/Target/ThreadPlanCallFunction.h
lldb/branches/apple/python-GIL/scripts/Python/interface/SBBlock.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBData.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBInstructionList.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBModule.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBProcess.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBSymbolContextList.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBTarget.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBThread.i
lldb/branches/apple/python-GIL/scripts/Python/interface/SBValueList.i
lldb/branches/apple/python-GIL/scripts/Python/python-typemaps.swig
lldb/branches/apple/python-GIL/source/Expression/ClangFunction.cpp
lldb/branches/apple/python-GIL/source/Interpreter/OptionGroupPlatform.cpp
lldb/branches/apple/python-GIL/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp
lldb/branches/apple/python-GIL/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
lldb/branches/apple/python-GIL/source/Target/Thread.cpp
lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallFunction.cpp
lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallUserExpression.cpp
lldb/branches/apple/python-GIL/test/expression_command/issue_11588/Test11588.py
lldb/branches/apple/python-GIL/www/lldb-gdb.html
Propchange: lldb/branches/apple/python-GIL/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri May 11 16:06:13 2012
@@ -1 +1 @@
-/lldb/trunk:156467-156605
+/lldb/trunk:156467-156639
Modified: lldb/branches/apple/python-GIL/include/lldb/Target/ThreadPlanCallFunction.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/include/lldb/Target/ThreadPlanCallFunction.h?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/include/lldb/Target/ThreadPlanCallFunction.h (original)
+++ lldb/branches/apple/python-GIL/include/lldb/Target/ThreadPlanCallFunction.h Fri May 11 16:06:13 2012
@@ -133,7 +133,6 @@
bool
ConstructorSetup (Thread &thread,
- bool discard_on_error,
ABI *& abi,
lldb::addr_t &start_load_addr,
lldb::addr_t &function_load_addr);
@@ -170,6 +169,7 @@
lldb::ValueObjectSP m_return_valobj_sp; // If this contains a valid pointer, use the ABI to extract values when complete
bool m_takedown_done; // We want to ensure we only do the takedown once. This ensures that.
lldb::addr_t m_stop_address; // This is the address we stopped at. Also set in DoTakedown;
+ bool m_discard_on_error;
DISALLOW_COPY_AND_ASSIGN (ThreadPlanCallFunction);
};
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBBlock.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBBlock.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBBlock.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBBlock.i Fri May 11 16:06:13 2012
@@ -116,7 +116,7 @@
def __len__(self):
if self.sbblock:
- return self.sbblock.GetNumRanges()
+ return int(self.sbblock.GetNumRanges())
return 0
def __getitem__(self, key):
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBData.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBData.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBData.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBData.i Fri May 11 16:06:13 2012
@@ -156,7 +156,7 @@
else:
return my_data
def __len__(self):
- return self.sbdata.GetByteSize()/self.item_size
+ return int(self.sbdata.GetByteSize()/self.item_size)
def all(self):
return self[0:len(self)]
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBInstructionList.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBInstructionList.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBInstructionList.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBInstructionList.i Fri May 11 16:06:13 2012
@@ -62,7 +62,7 @@
%pythoncode %{
def __len__(self):
'''Access len of the instruction list.'''
- return self.GetSize();
+ return int(self.GetSize())
def __getitem__(self, key):
'''Access instructions by integer index.'''
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBModule.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBModule.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBModule.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBModule.i Fri May 11 16:06:13 2012
@@ -259,7 +259,7 @@
def __len__(self):
if self.sbmodule:
- return self.sbmodule.GetNumSymbols()
+ return int(self.sbmodule.GetNumSymbols())
return 0
def __getitem__(self, key):
@@ -315,7 +315,7 @@
def __len__(self):
if self.sbmodule:
- return self.sbmodule.GetNumSections()
+ return int(self.sbmodule.GetNumSections())
return 0
def __getitem__(self, key):
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBProcess.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBProcess.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBProcess.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBProcess.i Fri May 11 16:06:13 2012
@@ -321,7 +321,8 @@
self.sbprocess = sbprocess
def __len__(self):
- if self.sbprocess: return self.sbprocess.GetNumThreads()
+ if self.sbprocess:
+ return int(self.sbprocess.GetNumThreads())
return 0
def __getitem__(self, key):
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBSymbolContextList.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBSymbolContextList.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBSymbolContextList.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBSymbolContextList.i Fri May 11 16:06:13 2012
@@ -62,7 +62,7 @@
%pythoncode %{
def __len__(self):
- return self.GetSize()
+ return int(self.GetSize())
def __getitem__(self, key):
count = len(self)
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBTarget.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBTarget.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBTarget.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBTarget.i Fri May 11 16:06:13 2012
@@ -691,7 +691,7 @@
def __len__(self):
if self.sbtarget:
- return self.sbtarget.GetNumModules()
+ return int(self.sbtarget.GetNumModules())
return 0
def __getitem__(self, key):
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBThread.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBThread.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBThread.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBThread.i Fri May 11 16:06:13 2012
@@ -182,7 +182,7 @@
def __len__(self):
if self.sbthread:
- return self.sbthread.GetNumFrames()
+ return int(self.sbthread.GetNumFrames())
return 0
def __getitem__(self, key):
Modified: lldb/branches/apple/python-GIL/scripts/Python/interface/SBValueList.i
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/interface/SBValueList.i?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/interface/SBValueList.i (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/interface/SBValueList.i Fri May 11 16:06:13 2012
@@ -98,8 +98,8 @@
FindValueObjectByUID (lldb::user_id_t uid);
%pythoncode %{
def __len__(self):
- return self.GetSize()
-
+ return int(self.GetSize())
+
def __getitem__(self, key):
count = len(self)
#------------------------------------------------------------
Modified: lldb/branches/apple/python-GIL/scripts/Python/python-typemaps.swig
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/scripts/Python/python-typemaps.swig?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/scripts/Python/python-typemaps.swig (original)
+++ lldb/branches/apple/python-GIL/scripts/Python/python-typemaps.swig Fri May 11 16:06:13 2012
@@ -116,11 +116,14 @@
// typemap for an incoming buffer
// See also SBProcess::ReadMemory.
%typemap(in) (void *buf, size_t size) {
- if (!PyInt_Check($input)) {
- PyErr_SetString(PyExc_ValueError, "Expecting an integer");
- return NULL;
+ if (PyInt_Check($input)) {
+ $2 = PyInt_AsLong($input);
+ } else if (PyLong_Check($input)) {
+ $2 = PyLong_AsLong($input);
+ } else {
+ PyErr_SetString(PyExc_ValueError, "Expecting an integer or long object");
+ return NULL;
}
- $2 = PyInt_AsLong($input);
if ($2 <= 0) {
PyErr_SetString(PyExc_ValueError, "Positive integer expected");
return NULL;
@@ -329,4 +332,4 @@
%typemap(freearg) (uint32_t *versions) {
free($1);
-}
\ No newline at end of file
+}
Modified: lldb/branches/apple/python-GIL/source/Expression/ClangFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Expression/ClangFunction.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Expression/ClangFunction.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Expression/ClangFunction.cpp Fri May 11 16:06:13 2012
@@ -410,6 +410,8 @@
discard_on_error,
this_arg,
cmd_arg);
+ new_plan->SetIsMasterPlan(true);
+ new_plan->SetOkayToDiscard (false);
return new_plan;
}
Modified: lldb/branches/apple/python-GIL/source/Interpreter/OptionGroupPlatform.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Interpreter/OptionGroupPlatform.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Interpreter/OptionGroupPlatform.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Interpreter/OptionGroupPlatform.cpp Fri May 11 16:06:13 2012
@@ -34,7 +34,7 @@
platform_sp = Platform::Create (m_platform_name.c_str(), error);
if (platform_sp)
{
- if (!platform_sp->IsCompatibleArchitecture(arch, &platform_arch))
+ if (platform_arch.IsValid() && !platform_sp->IsCompatibleArchitecture(arch, &platform_arch))
{
error.SetErrorStringWithFormat("platform '%s' doesn't support '%s'", platform_sp->GetName(), arch.GetTriple().getTriple().c_str());
platform_sp.reset();
Modified: lldb/branches/apple/python-GIL/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp Fri May 11 16:06:13 2012
@@ -65,12 +65,8 @@
void
AppleThreadPlanStepThroughObjCTrampoline::DidPush ()
{
-// StreamString errors;
-// ExecutionContext exc_ctx;
-// m_thread.CalculateExecutionContext(exc_ctx);
-// m_func_sp.reset(m_impl_function->GetThreadPlanToCallFunction (exc_ctx, m_args_addr, errors, m_stop_others));
-// m_func_sp->SetPrivate(true);
-// m_thread.QueueThreadPlan (m_func_sp, false);
+ // Setting up the memory space for the called function text might require allocations,
+ // i.e. a nested function call. This needs to be done as a PreResumeAction.
m_thread.GetProcess()->AddPreResumeAction (PreResumeInitializeClangFunction, (void *) this);
}
@@ -91,6 +87,7 @@
m_thread.CalculateExecutionContext(exc_ctx);
m_func_sp.reset(m_impl_function->GetThreadPlanToCallFunction (exc_ctx, m_args_addr, errors, m_stop_others));
m_func_sp->SetPrivate(true);
+ m_func_sp->SetOkayToDiscard(true);
m_thread.QueueThreadPlan (m_func_sp, false);
}
return true;
Modified: lldb/branches/apple/python-GIL/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp Fri May 11 16:06:13 2012
@@ -90,6 +90,10 @@
if (call_plan_sp)
{
StreamFile error_strm;
+ // This plan is a utility plan, so set it to discard itself when done.
+ call_plan_sp->SetIsMasterPlan (true);
+ call_plan_sp->SetOkayToDiscard(true);
+
StackFrame *frame = thread->GetStackFrameAtIndex (0).get();
if (frame)
{
@@ -164,6 +168,10 @@
if (call_plan_sp)
{
StreamFile error_strm;
+ // This plan is a utility plan, so set it to discard itself when done.
+ call_plan_sp->SetIsMasterPlan (true);
+ call_plan_sp->SetOkayToDiscard(true);
+
StackFrame *frame = thread->GetStackFrameAtIndex (0).get();
if (frame)
{
Modified: lldb/branches/apple/python-GIL/source/Target/Thread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Target/Thread.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Target/Thread.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Target/Thread.cpp Fri May 11 16:06:13 2012
@@ -447,7 +447,6 @@
break;
}
}
-
}
else
{
Modified: lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallFunction.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallFunction.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallFunction.cpp Fri May 11 16:06:13 2012
@@ -36,15 +36,12 @@
//----------------------------------------------------------------------
bool
ThreadPlanCallFunction::ConstructorSetup (Thread &thread,
- bool discard_on_error,
ABI *& abi,
lldb::addr_t &start_load_addr,
lldb::addr_t &function_load_addr)
{
- // Call function thread plans need to be master plans so that they can potentially stay on the stack when
- // a breakpoint is hit during the function call.
SetIsMasterPlan (true);
- SetOkayToDiscard (discard_on_error);
+ SetOkayToDiscard (false);
ProcessSP process_sp (thread.GetProcess());
if (!process_sp)
@@ -136,12 +133,13 @@
m_function_sp (NULL),
m_return_type (return_type),
m_takedown_done (false),
- m_stop_address (LLDB_INVALID_ADDRESS)
+ m_stop_address (LLDB_INVALID_ADDRESS),
+ m_discard_on_error (discard_on_error)
{
lldb::addr_t start_load_addr;
ABI *abi;
lldb::addr_t function_load_addr;
- if (!ConstructorSetup (thread, discard_on_error, abi, start_load_addr, function_load_addr))
+ if (!ConstructorSetup (thread, abi, start_load_addr, function_load_addr))
return;
if (this_arg && cmd_arg)
@@ -204,7 +202,7 @@
lldb::addr_t start_load_addr;
ABI *abi;
lldb::addr_t function_load_addr;
- if (!ConstructorSetup (thread, discard_on_error, abi, start_load_addr, function_load_addr))
+ if (!ConstructorSetup (thread, abi, start_load_addr, function_load_addr))
return;
if (!abi->PrepareTrivialCall (thread,
@@ -354,7 +352,7 @@
return true;
// If we don't want to discard this plan, than any stop we don't understand should be propagated up the stack.
- if (!OkayToDiscard())
+ if (!m_discard_on_error)
return false;
// Otherwise, check the case where we stopped for an internal breakpoint, in that case, continue on.
@@ -386,7 +384,13 @@
return false;
}
- return OkayToDiscard();
+ if (m_discard_on_error)
+ {
+ DoTakedown(false);
+ return true;
+ }
+ else
+ return false;
}
else
{
@@ -396,7 +400,7 @@
// explain the stop.
if (m_subplan_sp != NULL)
{
- if (OkayToDiscard())
+ if (m_discard_on_error)
{
DoTakedown(false);
return true;
Modified: lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallUserExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallUserExpression.cpp?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallUserExpression.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Target/ThreadPlanCallUserExpression.cpp Fri May 11 16:06:13 2012
@@ -47,6 +47,9 @@
ThreadPlanCallFunction (thread, function, ClangASTType(), arg, stop_other_threads, discard_on_error, this_arg, cmd_arg),
m_user_expression_sp (user_expression_sp)
{
+ // User expressions are generally "User generated" so we should set them up to stop when done.
+ SetIsMasterPlan (true);
+ SetOkayToDiscard(false);
}
ThreadPlanCallUserExpression::~ThreadPlanCallUserExpression ()
Modified: lldb/branches/apple/python-GIL/test/expression_command/issue_11588/Test11588.py
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/test/expression_command/issue_11588/Test11588.py?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/test/expression_command/issue_11588/Test11588.py (original)
+++ lldb/branches/apple/python-GIL/test/expression_command/issue_11588/Test11588.py Fri May 11 16:06:13 2012
@@ -59,13 +59,13 @@
addr = addr - 1
self.runCmd("register write r14 %d" % addr)
self.expect("register read r14",
- substrs = ["0x",hex(addr)[2:]])
+ substrs = ["0x",hex(addr)[2:].rstrip("L")]) # Remove trailing 'L' if it exists
self.expect("print *(StgClosure*)$r14",
substrs = ["(StgClosure) $",
"(StgClosure *) &$","0x",
"(long) addr = ",
"(long) load_address = ",
- hex(addr)[2:],
+ hex(addr)[2:].rstrip("L"),
str(addr)])
Modified: lldb/branches/apple/python-GIL/www/lldb-gdb.html
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/www/lldb-gdb.html?rev=156643&r1=156642&r2=156643&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/www/lldb-gdb.html (original)
+++ lldb/branches/apple/python-GIL/www/lldb-gdb.html Fri May 11 16:06:13 2012
@@ -871,6 +871,30 @@
</table>
<p>
</div>
+ <div class="postfooter"></div>
+ <h1 class ="postheader">Miscellaneous</h1>
+ <div class="post">
+ <p>
+ <table class="stats" width="620" cellspacing="0">
+ <tr>
+ <td class="hed" width="50%">LLDB</td>
+ <td class="hed" width="50%">GDB</td>
+ </tr>
+
+ <tr><td class="header" colspan="2">Echo text to the screen.</td></tr>
+ <tr>
+ <td class="content">
+ <b>(lldb)</b> script print "Here is some text"<br>
+ </td>
+ <td class="content">
+ <b>(gdb)</b> echo Here is some text\n<br>
+ </td>
+ </tr>
+
+ </table>
+ <p>
+ </div>
+
<div class="postfooter"></div>
<p>
More information about the lldb-commits
mailing list