summaryrefslogtreecommitdiffstats
path: root/lldb/scripts
Commit message (Collapse)AuthorAgeFilesLines
...
* FOOAdrian McCarthy2015-11-201-0/+3
| | | | llvm-svn: 253684
* Remove `lldb.root` and just look for the file we care about.Zachary Turner2015-11-202-2/+2
| | | | llvm-svn: 253679
* Revert "prepare_bindings.py: enable static bindings"Todd Fiala2015-11-194-83995/+19
| | | | | | This reverts commit 40f789f2dc6bb80fd25a33f91e452d081ed9d0ee. llvm-svn: 253575
* Remove superseded buildSwigWrapperClasses.py and buildSwigPython.py classesTodd Fiala2015-11-183-1234/+1
| | | | | | | This closes: http://reviews.llvm.org/D14783 llvm-svn: 253513
* Remove the scripts/Python/build-swig-Python.sh script.Todd Fiala2015-11-181-378/+0
| | | | | | This logically goes with my previous commit. llvm-svn: 253491
* remove defunct scripts/build-swig-wrapper-classes.sh; switch autoconf build ↵Todd Fiala2015-11-181-151/+0
| | | | | | | | to prepare_bindings.py. Xcode moved off of build-swig-wrapper-classes.sh earlier this week. llvm-svn: 253490
* Fix some issues with swig & string conversion.Zachary Turner2015-11-181-5/+16
| | | | | | | | | | | | | | | | | | | | This patch fixes two issues: 1) Popen needs to be used with universal_newlines=True by default. This elicits automatic decoding from bytes -> string in Py3, and has no negative effects in other Py versions. 2) The swig typemaps for converting between string and (char*, int) did not work correctly when the length of the string was 0, indicating an error. In this case we would try to construct a string from uninitialized data. 3) Ironically, the bug mentioned in #2 led to a test passing on Windows that was actually broken, because the test was written such that the assertion was never even getting checked, so it passed by default. So we additionally fix this test to also fail if the method errors. By fixing this test it's now broken on Windows, so we also xfail it. llvm-svn: 253487
* Switched cmake build from using buildSwigWrapperClases.py to the cleaned up ↵Todd Fiala2015-11-181-1/+2
| | | | | | | | | | | | | | version. This change does not introduce static bindings. It is simply using the pylinted cleaned up code in prepare_bindings.py. If this breaks anyting, I'll revert immediately and figure out what needs to be addressed. I'm looking to wrap up the cleanup aspect of the code change (pylinted, removal of code that implements existing python stdlib code, fixes for Xcode adoption, etc.). llvm-svn: 253478
* prepare_bindings.py: enable static bindingsTodd Fiala2015-11-184-19/+83995
| | | | | | | | | | | | | | | Added a new flag, --allow-static-binding. When specified, if (and only if) the swig binary cannot be found, then the LLDBWrapPython.cpp and lldb.py from the scripts/Python/{static-binding-dir} are copied into the place where swig would have generated them. {static-binding-dir} defaults to static-binding, and can be overridden with the --static-binding-dir command line argument. The static bindings checked in are from r253424. llvm-svn: 253448
* Added --find-swig option to allow searching for swig in path or other likely ↵Todd Fiala2015-11-171-0/+76
| | | | | | locations. llvm-svn: 253346
* Add Pythonic language binding wrapper generation script.Todd Fiala2015-11-172-0/+631
| | | | | | | | | | | | | | | | | | | | | | | | This is only used by Xcode at the moment. It replaces the buildSwigWrapperClasses.py and related per-script-language scripts. It also fixes a couple bugs in those w/r/t Xcode usage: * the presence of the GCC_PREPROCESSOR_DEFINITIONS env var should not be short-circuiting generation of the language binding; rather, only if LLDB_DISABLE_PYTHON is present within that environment variable. * some logic around what to do when building in "non-Makefile" mode. I've switched the handling of that to be on a "--framework" flag - if specified, we build an OS X-style framework; otherwise, we go with non. Putting this up now only attached to the Xcode build so others can look at it but not be affected by it yet. After this, I'll tackle the finalizer, along with trying it locally on Linux. llvm-svn: 253317
* Add the ability (through the SB API & command line) to specify an addressJim Ingham2015-11-171-0/+3
| | | | | | | | breakpoint as "file address" so that the address breakpoint will track that module even if it gets loaded in a different place. Also fixed the Address breakpoint resolver so that it handles this tracking correctly. llvm-svn: 253308
* Insert the SWIG version into LLDB's __init__.pyZachary Turner2015-11-161-5/+30
| | | | | | | The goal here is to allow us to add skip / xfail decorators based on SWIG version. llvm-svn: 253262
* Python3 - Fix some issues related to `PythonFile` class.Zachary Turner2015-11-161-0/+5
| | | | | | | | Python 3 has lots of new debug asserts, and some of these were firing on PythonFile. Specifically related to handling of invalid files. llvm-svn: 253261
* Allow to override python-config executable name from command lineBruce Mitchener2015-11-151-1/+2
| | | | | | | | | | | | | | Summary: pkgsrc (on NetBSD) ships with python2.7-config. Patch by Kamil Rytarowski. Thanks! Reviewers: emaste, clayborg Subscribers: brucem, lldb-commits, joerg Differential Revision: http://reviews.llvm.org/D14528 llvm-svn: 253152
* Delete `PyObjectToString` and use `PythonObject::Str()`.Zachary Turner2015-11-131-43/+12
| | | | | | | The latter function, from PythonDataObjects, is Python 3 ready and the former was not. llvm-svn: 252992
* Finish PyCallable -> PythonCallable conversion.Zachary Turner2015-11-121-258/+88
| | | | | | | | | | | | | | This finishes the effort to port python-wrapper.swig code over to using PythonDataObjects. Also included in this patch is the removal of `PyCallable` from `python-wrapper.swig`, as it is no longer used after having been replaced by `PythonCallable` everywhere. There might be additional cleanup as followup patches, but it should be all fairly simple and minor. llvm-svn: 252939
* Fix non-Windows build after r252906.Zachary Turner2015-11-122-1/+2
| | | | llvm-svn: 252909
* Begin converting uses of PyCallable to PythonCallable.Zachary Turner2015-11-121-213/+157
| | | | | | | | | | | | | | | | PyCallable is a class that exists solely within the swig wrapper code. PythonCallable is a more generic implementation of the same idea that can be used by any Python-related interop code, and lives in PythonDataObjects.h The CL is mostly mechanical, and it doesn't cover every possible user of PyCallable, because I want to minimize the impact of this change (as well as making it easier to figure out what went wrong in case this causes a failure). I plan to finish up the rest of the changes in a subsequent patch, culminating in the removal of PyCallable entirely. llvm-svn: 252906
* Remove `FindSessionDictionary` and rely on PythonDataObjects.Zachary Turner2015-11-111-190/+140
| | | | | | | | This had been relegated to a simple forwarding function, so just delete it in preparation of migrating all of these functions out of python-wrapper.swig. llvm-svn: 252803
* Convert python-wrapper.swig to use PythonDataObjects.Zachary Turner2015-11-111-99/+43
| | | | | | | | | This only begins to port python-wrapper.swig over. Since this code can be pretty hairy, I plan to do this incrementally over a series of patches, each time removing or converting more code over to the PythonDataObjects code. llvm-svn: 252788
* Python 3 - Use six in our embedded Python glue code.Zachary Turner2015-11-112-1/+3
| | | | llvm-svn: 252767
* Symlink the `six` module during swig generation.Zachary Turner2015-11-112-22/+44
| | | | llvm-svn: 252764
* Fixed TypeMemberFunctionImpl to not use clang types directly but use the new ↵Greg Clayton2015-11-103-0/+23
| | | | | | | | | | CompilerDecl class to do the job in an abstract way. Fixed a crash that would happen if you tried to get the name of a constructor or destructor by calling "getDeclName()" instead of calling getName() (which would assert and crash). Added the ability to get function arguments names from SBFunction. llvm-svn: 252622
* Use PythonDataObjects in swig helper functions.Zachary Turner2015-11-091-31/+31
| | | | | | | | | | | | | | | | | Relying on manual Python C API calls is error prone, especially when trying to maintain compatibility with Python 2 and Python 3. This patch additionally fixes what appears to be a potentially serious memory leak, in that were were incref'ing two values returned from the session dictionary but never decref'ing them. There was a comment indicating that it was intentional, but the reasoning was, I believe, faulty and it resulted in a legitimate memory leak. Switching everything to PythonObject based classes solves both the compatibility issues as well as the resource leak issues. llvm-svn: 252536
* Add SBType::IsAnonymousType() and relative plumbing in the debugger internalsEnrico Granata2015-11-071-0/+3
| | | | | | | | For language that support such a thing, this API allows to ask whether a type is anonymous (i.e. has been given no name) Comes with test case llvm-svn: 252390
* Remove a debug print statement.Zachary Turner2015-11-071-1/+0
| | | | llvm-svn: 252384
* Python 3 - Use __bool__() instead of __nonzero__() for truthiness.Zachary Turner2015-11-074-2/+62
| | | | | | | | | | | | | | | | | | | | | | | Python has a complicated mechanism of checking an objects truthity. This involves a number of steps, which end with calling two private methods on an object (if they are implemented). In Python 2 these two methods are `__nonzero__` and `__len__`, and in Python 3 they are `__bool__` and `__len__`. Because we *also* define a __len__ method for certain iterable types, this was triggering a situation in Python 3 where `__nonzero__` wasn't defined, so it was calling `__len__`, which was returning 0 (for example an SBDebugger with no targets), and as a result the truthosity was determined to be False. We fix this by correctly using ` __bool__` for Python 3, and leave the behavior under Python 2 unchanged. Note that this fix is only implemented in the SWIG generation python script, and not the SWIG generation shell script. Someone more familiar than me with shell scripts will need to fix them to support this for Python 3 if desired. llvm-svn: 252382
* Make the language specifier to "break set" actually filter the names by ↵Jim Ingham2015-11-061-0/+21
| | | | | | | | | | | | | their language. So for instance: break set -l c++ -r Name will only break on C++ symbols that match Name, not ObjC or plain C symbols. This also works for "break set -n" and there are SB API's to pass this as well. llvm-svn: 252356
* [swig] Remove check_lldb_swig_executable_file_exists.Bruce Mitchener2015-11-062-169/+22
| | | | | | | | | | | | | | | | | Summary: Code that tried to find swig and then split the path into a separate path and filename is being removed. The invoking build system always provides the location of swig and we don't need to split it into 2 pieces only to recombine it a short time later. Reviewers: zturner, domipheus Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14415 llvm-svn: 252330
* [swig] Start of pylint on python build scripts.Bruce Mitchener2015-11-058-1628/+1614
| | | | | | | | | | | | | | | | | | | | | | | Summary: This does a broad first pass on cleaning up a lot of the noise when using pylint on these scripts. It mostly addresses issues of: * Mixed tabs and spaces. * Trailing whitespace. * Semicolons where they aren't needed. * Incorrect whitespace around () and []. * Superfluous parentheses. There will be subsequent patches with further changes that build upon these. Reviewers: zturner, domipheus Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14375 llvm-svn: 252244
* Update for tvos or watchos builds.Jason Molenda2015-11-051-0/+6
| | | | llvm-svn: 252234
* Don't access class members inside of `__del__`.Zachary Turner2015-11-041-4/+0
| | | | | | Apparently this doesn't work as the attribute doesn't exist anymore. llvm-svn: 252091
* Revert "Python 3 - Don't add the _d suffix to the symlink on Windows."Zachary Turner2015-11-044-30/+2
| | | | | | | | | | | | This reverts commit e59c95ca936f5a0a8abb987b8605fd8bf82b03b6. This was a mistake on my part. The real problem was with my environment. I was using a release interpreter to try to load my debug extension module. I noticed this after I finally managed to get into my extension module's init method, and then it segfaulted with heap errors due to mismatched CRT (debug vs. release) llvm-svn: 252030
* Python 3 - Don't add the _d suffix to the symlink on Windows.Zachary Turner2015-11-044-2/+30
| | | | | | | | | | | In Python 2, a debug extension module required an _d suffix, so for example the extension module `_lldb` would be backed by the file `_lldb_d.pyd` if built in debug mode, and `_lldb.pyd` if built in release mode. In Python 2, although undocumented, this seems to no longer be the case, and even for a debug extension module, the interpreter will only look for the `_lldb.pyd` name. llvm-svn: 252026
* Revert part of r239007 related to creating the Python symlink.Zachary Turner2015-11-021-9/+0
| | | | | | | | | | | | | | | This has apparently been broken since June, but only on non-Windows. Perhaps nobody noticed it because if the symlink is already there it won't try to re-create it, and nobody ever tried doing a clean build. In any case, I will let the original author attempt to fix this if he is still interested. the problem is that in the normal case of not setting BUILD_SHARED_LIBS and simply running ninja, it would link _lldb.so to a non-existent location, creating a dangling symlink. llvm-svn: 251840
* Rename argdumper to lldb-argdumperTodd Fiala2015-10-292-13/+13
| | | | | | http://reviews.llvm.org/D14169 llvm-svn: 251616
* Add calls to the SB API to access the multi-language formatter category featureEnrico Granata2015-10-271-0/+9
| | | | llvm-svn: 251376
* [SBValue] Add a method GetNumChildren(uint32_t max)Siva Chandra2015-10-212-7/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Along with this, support for an optional argument to the "num_children" method of a Python synthetic child provider has also been added. These have been added with the following use case in mind: Synthetic child providers currently have a method "has_children" and "num_children". While the former is good enough to know if there are children, it does not give any insight into how many children there are. Though the latter serves this purpose, calculating the number for children of a data structure could be an O(N) operation if the data structure has N children. The new method added in this change provide a middle ground. One can call GetNumChildren(K) to know if a child exists at an index K which can be as large as the callers tolerance can be. If the caller wants to know about children beyond K, it can make an other call with 2K. If the synthetic child provider maintains state about it counting till K previosly, then the next call is only an O(K) operation. Infact, all calls made progressively with steps of K will be O(K) operations. Reviewers: vharron, clayborg, granata.enrico Subscribers: labath, lldb-commits Differential Revision: http://reviews.llvm.org/D13778 llvm-svn: 250930
* Added support for the "--repl" argument to LLDB. Sean Callanan2015-10-201-0/+3
| | | | | | | | | This makes LLDB launch and create a REPL, specifying no target so that the REPL can create one for itself. Also added the "--repl-language" option, which specifies the language to use. Plumbed the relevant arguments and errors through the REPL creation mechanism. llvm-svn: 250773
* Run py2to3 on lldb/scripts folder.Zachary Turner2015-10-196-36/+36
| | | | | | | This mostly fixes some print statements, but there were also some instances of dict.iteritems() lingering that this found. llvm-svn: 250762
* Python: follow python guidelines for header usageSaleem Abdulrasool2015-10-191-1/+5
| | | | | | | Python requires that Python.h is included before any std header. Not doing so results in conflicts with standards macros such as `_XOPEN_SOURCE`. NFC. llvm-svn: 250673
* Make some more of the LLDB/SWIG/Python glue Python 3 aware.Zachary Turner2015-10-1612-48/+48
| | | | | | | Mostly this is just converting some print statements to print functions. llvm-svn: 250533
* Make swig generation python scripts python 3 compatible.Zachary Turner2015-10-162-29/+29
| | | | llvm-svn: 250532
* Convert SWIG typemap string operations to PythonObjects.Zachary Turner2015-10-161-32/+45
| | | | llvm-svn: 250530
* Update SWIG typemaps to use `PythonFile`.Zachary Turner2015-10-161-12/+18
| | | | | | | | Using the Python native C API is non-portable across Python versions, so this patch changes them to use the `PythonFile` class which hides the version specific differences behind a single interface. llvm-svn: 250525
* I've been seeing a problem with xcodebuilds on macosx forJason Molenda2015-10-161-8/+8
| | | | | | | | | | | | | | | | | a few days now where compiler-rt gets an error when trying to run its install step (related to not being able to find an ios version of a dylib), breaking the lldb build. I don't know if I'm the only one seeing this or if everyone has been doing the same hack I've been doing - removing the compiler-rt project from the default checkout. It's only used for the ASAN test case. So I'm temporarily checking in my hackaround of not checking out compiler-rt by default, I'll try to get back and look at what's actually happening in the compiler-rt install step that is causing the problems when built as a part of lldb. llvm-svn: 250487
* Change swig interface files to use PythonDataObjects.Zachary Turner2015-10-143-83/+88
| | | | llvm-svn: 250303
* Fix TestTargetAPI.py test for users who use Swig 3.0.5 or greater.Adrian McCarthy2015-10-131-0/+2
| | | | | DifferentialRevision: http://reviews.llvm.org/D13679 llvm-svn: 250188
* Support RHEL 7 and similar systems that use architecture-specific Python lib ↵Todd Fiala2015-10-121-0/+44
| | | | | | | | dirs This change commits: http://reviews.llvm.org/D13625 llvm-svn: 250093
OpenPOWER on IntegriCloud