summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/embedded_interpreter.py
Commit message (Collapse)AuthorAgeFilesLines
* Continuation broken for Python scripts when using non-interactive input ↵Greg Clayton2014-09-151-1/+1
| | | | | | | | | | (Xcode for example). The problem was the read_func we were supplying to the interactive interpreter wasn't stripping the newline from the end of the string. Now it does and multi-line python scripts can be typed in Xcode. <rdar://problem/17696438> llvm-svn: 217843
* Suppress python readline module under Linux to fix a seg fault.Todd Fiala2014-02-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix for pr18841: http://llvm.org/bugs/show_bug.cgi?id=18841 This change creates a stub Python readline.so module that does almost nothing. Its whole purpose is to prevent Python from loading the real module, something it does during the embedded Python interpreter's initialization sequence (and way before lldb ever requests it within embedded_interpreter.py). On Ubuntu 12.04 and 13.10 x86_64, and in the Python 2.7.6 tree, the stock Python readline module links against the GNU readline library. This appears to be the case on all Pythons except where __APPLE__ is defined. LLDB now requires linking against the libedit library. Something about having both libedit.so and libreadline.so linked into the same process space is causing the Python readline.so to trigger a NULL memory access. I have put in a separate patch to python.org. This suppression of embedded interpreter readline support can be removed if at least any one of the following happens: 1. The stock python distribution accepts a patch similar to what I submitted to Python 2.7.6's Modules/readline.c file. 2. The stock python distribution implements Modules/readline.c in terms of libedit's readline compatibility mode (i.e. essentially compiles it the way __APPLE__ compiles that module) under Linux. 3. a clean-room implementation of the python readline module is implemented against libedit (either readline compatibility mode or native libedit). This could be implemented within the readline.cpp file that this change introduces. It cannot be a fork of python's readline.c module due to llvm licensing. The net effect of this change on Linux is that the embedded python's readline support will not exist. llvm-svn: 202243
* Merging the iohandler branch back into main. Greg Clayton2014-01-271-89/+94
| | | | | | | | | | | | The many many benefits include: 1 - Input/Output/Error streams are now handled as real streams not a push style input 2 - auto completion in python embedded interpreter 3 - multi-line input for "script" and "expression" commands now allow you to edit previous/next lines using up and down arrow keys and this makes multi-line input actually a viable thing to use 4 - it is now possible to use curses to drive LLDB (please try the "gui" command) We will need to deal with and fix any buildbot failures and tests and arise now that input/output and error are correctly hooked up in all cases. llvm-svn: 200263
* Add a new-lineEnrico Granata2013-12-211-1/+1
| | | | llvm-svn: 197860
* Split up the Python script interpreter code to allow multiple script ↵Caroline Tice2011-01-141-0/+13
| | | | | | | | | | | interpreter objects to exist within the same process (one script interpreter object per debugger object). The python script interpreter objects are all using the same global Python script interpreter; they use separate dictionaries to keep their data separate, and mutex's to prevent any object attempting to use the global Python interpreter when another object is already using it. llvm-svn: 123415
* Committing patch from Joseph Ranieri to handle 'exit()' the sameJason Molenda2010-06-091-1/+1
| | | | | | as 'quit()' in the python script environment. llvm-svn: 105756
* Initial checkin of lldb code from internal Apple repo.Chris Lattner2010-06-081-0/+90
llvm-svn: 105619
OpenPOWER on IntegriCloud