[LLDB] bugfix: command script add -f doesn't work for some callables
authorLawrence D'Anna <lawrence_danna@apple.com>
Sat, 19 Oct 2019 07:05:33 +0000 (07:05 +0000)
committerLawrence D'Anna <lawrence_danna@apple.com>
Sat, 19 Oct 2019 07:05:33 +0000 (07:05 +0000)
commit2386537c2469a97501a305c6b3138231b907a67f
tree71e2db86167d02ef38f7c1d0646356841b44435d
parent4a5df7312ec2c14360e4e12596a1ef63be39a480
[LLDB] bugfix: command script add -f doesn't work for some callables

Summary:
When users define a debugger command from python, they provide a callable
object.   Because the signature of the function has been extended, LLDB
needs to inspect the number of parameters the callable can take.

The rule it was using to decide was weird, apparently not tested, and
giving wrong results for some kinds of python callables.

This patch replaces the weird rule with a simple one: if the callable can
take 5 arguments, it gets the 5 argument version of the signature.
Otherwise it gets the old 4 argument version.

It also adds tests with a bunch of different kinds of python callables
with both 4 and 5 arguments.

Reviewers: JDevlieghere, clayborg, labath, jingham

Reviewed By: labath

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D69014

llvm-svn: 375333
lldb/packages/Python/lldbsuite/test/commands/command/script/TestCommandScript.py
lldb/packages/Python/lldbsuite/test/commands/command/script/callables.py [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/commands/command/script/py_import
lldb/scripts/Python/python-wrapper.swig
lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp