aboutsummaryrefslogtreecommitdiff
path: root/lldb/scripts/Python
AgeCommit message (Collapse)AuthorFilesLines
2012-09-14Fixed some problems with SWIG bindings.Filipe Cabecinhas2-11/+13
This may (but shouldn't) break Linux (but I tested and it still worked on FreeBSD). The same shell scripts are now used on Xcode and Makefiles, for generating the SWIG bindings. Some compatibility fixes were applied, too (python path, bash-isms, etc). llvm-svn: 163912
2012-09-14Make the unwinding of the stack part of "thread return" work, and add the ↵Jim Ingham1-1/+1
thread return command. llvm-svn: 163867
2012-09-12Start at getting "thread return" working. Doesn't work yet.Jim Ingham1-0/+3
llvm-svn: 163670
2012-08-28Simplify the typecheck code.Filipe Cabecinhas1-10/+4
llvm-svn: 162753
2012-08-27Fixing a potential control may reach end of non-void function issueEnrico Granata1-0/+1
llvm-svn: 162685
2012-08-25Added SBDebugger's log callbacks to Python-landFilipe Cabecinhas4-32/+91
- Tweaked a parameter name in SBDebugger.h so my typemap will catch it; - Added a SBDebugger.Create(bool, callback, baton) to the swig interface; - Added SBDebugger.SetLoggingCallback to the swig interface; - Added a callback utility function for log callbacks; - Guard against Py_None on both callback utility functions; - Added a FIXME to the SBDebugger API test; - Added a __del__() stub for SBDebugger. We need to be able to get both the log callback and baton from an SBDebugger if we want to protect against memory leaks (or make the user responsible for holding another reference to the callback). Additionally, it's impossible to revert from a callback-backed log mechanism to a file-backed log mechanism. llvm-svn: 162633
2012-08-24Fixing a bunch of issues with the OS plugin codeEnrico Granata1-1/+1
llvm-svn: 162527
2012-08-24Adding bindings to the Script Interpreter for some basic Python OS plugin ↵Enrico Granata1-0/+97
functionality (still WIP) llvm-svn: 162513
2012-08-22Fixed a Linux building bug pointed out by Daniel Malea.Filipe Cabecinhas1-1/+1
llvm-svn: 162373
2012-08-22Added a typemap and wrappers for SBInputReader callbacksFilipe Cabecinhas3-1/+87
Now it's possible to use SBInputReader callbacks in Python. We leak the callback object, unfortunately. A __del__ method can be added to SBInputReader, but we have no way to check the callback function that is on the reader. So we can't call Py_DECREF on it when we have our PythonCallback function. One way to do it is to assume that reified SBInputReaders always have a Python callback (and always call Py_DECREF). Another one is to add methods or properties to SBInputReader (or make the m_callback_function property public). llvm-svn: 162356
2012-08-20Fix a crash (_wrap_SBDebugger_SetInputFileHandle -> PyString_AsString) ↵Johnny Chen1-2/+9
running the test suite. Also modify the boundary condition test case SBDebugger.DispatchInput(None) to be wrapped inside a try-except clause for now. llvm-svn: 162228
2012-08-20A baton isn't needed to dispatch input.Filipe Cabecinhas2-1/+17
I also added a typemap to make DispatchInput usable in Python. llvm-svn: 162204
2012-08-20Add FILE* typemaps for SBDebugger.GetInputFileHandle() and friends.Filipe Cabecinhas1-0/+35
llvm-svn: 162203
2012-08-18Merge python-GIL bracnh (by filcab) back into trunk!Johnny Chen1-1/+1
llvm-svn: 162161
2012-08-09rdar://problem/11457143 [ER] need "watchpoint command ..."Johnny Chen1-0/+79
Add 'watchpoint command add/delete/list' to lldb, plus two .py test files. llvm-svn: 161638
2012-07-31<rdar://problem/11275622>Greg Clayton1-1/+86
Added new API to lldb::SBTypeMember for bitfields: bool SBTypeMember::IsBitfield(); uint32_t SBTypeMember::GetBitfieldSizeInBits(); Also added new properties for easy access. Now SBTypeMember objects in python have a "fields" property for all type fields, "bases" for all direct bases, "vbases" for all virtual base classes and "members" for a combo of all three organized by bit offset. They all return a python list() of SBTypeMember objects. Usage: (lldb) script >>> t = lldb.target.FindFirstType("my_type") >>> for field in t.fields: ... print field >>> for vbase in t.vbases: ... print vbase >>> for base in t.bases: ... print base >>> for member in t.members: ... print member Also added new "is_bitfield" property to the SBTypeMember objects that will return the result of SBTypeMember::IsBitfield(), and "bitfield_bit_size" which will return the result of SBTypeMember::GetBitfieldSizeInBits(); I also fixed "SBTypeMember::GetOffsetInBytes()" to return the correct byte offset. llvm-svn: 161091
2012-07-27Added an lldb_private & equivalent SB API to send an AsyncInterrupt to the ↵Jim Ingham1-0/+3
event loop. Convert from calling Halt in the lldb Driver.cpp's input reader's sigint handler to sending this AsyncInterrupt so it can be handled in the event loop. If you are attaching and get an async interrupt, abort the attach attempt. Also remember to destroy the process if get interrupted while attaching. Getting this to work also required handing the eBroadcastBitInterrupt in a few more places in Process WaitForEvent & friends. <rdar://problem/10792425> llvm-svn: 160903
2012-07-20Add "vAttachOrWait" to debugserver, so you can implement "attach to the ↵Jim Ingham1-0/+6
process if it exists OR wait for it" without race conditions. Use that in lldb. llvm-svn: 160578
2012-07-13Add accessors on process to get & set the selected thread by IndexID (useful ↵Jim Ingham2-0/+27
since that's the one that "thread list" shows and it won't get reused even if the underlying system thread ID gets reused. llvm-svn: 160187
2012-06-29Added documentation for many of our python properties and also made the ↵Greg Clayton27-238/+239
property help show up by declaring the properties correctly. We previosly declared properties into a local "x" variable, what I didn't realize is that the help will use this as the property name for the help output. llvm-svn: 159468
2012-06-27Added the ability to read the dSYM plist file with source remappings even ↵Greg Clayton1-0/+3
when DebugSymbols isn't used to find the dSYM. We now parse the plist as XML in the MacOSX symbol vendor. Added the ability to get a section load address given a target which is needed for a previous checking which saves crashlogs. llvm-svn: 159298
2012-06-27Modify the ranges_access() helper function to be able to lookup the address ↵Greg Clayton1-0/+4
range in a block given an address. Since blocks can have multiple discontiguous ranges, it helps to be able to get the current address range for the current block in a frame. This can be used in code like: curr_block_range = lldb.frame.block.range[lldb.frame.addr] llvm-svn: 159289
2012-06-27Fixed the get_process_thread_list function to correctly return a list of all ↵Greg Clayton1-1/+1
threads in a process. llvm-svn: 159288
2012-06-27Make a way to set the result status for Python defined commands, and don't ↵Jim Ingham1-0/+3
overwrite the status of the result if the python command has set it. llvm-svn: 159273
2012-06-08Make raw & parsed commands subclasses of CommandObject rather than having ↵Jim Ingham1-0/+3
the raw version implement an Execute which was never going to get run and another ExecuteRawCommandString. Took the knowledge of how to prepare raw & parsed commands out of CommandInterpreter and put it in CommandObject where it belongs. Also took all the cases where there were the subcommands of Multiword commands declared in the .h file for the overall command and moved them into the .cpp file. Made the CommandObject flags work for raw as well as parsed commands. Made "expr" use the flags so that it requires you to be paused to run "expr". llvm-svn: 158235
2012-06-04rdar://problem/11584012Johnny Chen3-6/+4
Refactorings of watchpoint creation APIs so that SBTarget::WatchAddress(), SBValue::Watch(), and SBValue::WatchPointee() now take an additional 'SBError &error' parameter (at the end) to contain the reason if there is some failure in the operation. Update 'watchpoint set variable/expression' commands to take advantage of that. Update existing test cases to reflect the API change and add test cases to verify that the SBError mechanism works for SBTarget::WatchAddress() by passing an invalid watch_size. llvm-svn: 157964
2012-05-26Fix the comments about LLDB_DISABLE_PYTHON in the python swig shell scripts ↵Jim Ingham2-3/+8
to be more clear. llvm-svn: 157506
2012-05-24Fix missing Resources/Python directory for macosx build.Johnny Chen2-3/+3
llvm-svn: 157405
2012-05-24Change the "Debug" build to use the current MacOSX SDK. Fix the swig ↵Jim Ingham1-5/+6
builder to have an explicit short-circuit of the Python SWIG building, rather than relying on the SDKROOT being set. llvm-svn: 157363
2012-05-23Add SBProcess::GetNumSupportedHardwareWatchpoints() API and export it ↵Johnny Chen1-0/+3
through the Python scripting bridge. Add/modify some test cases. llvm-svn: 157353
2012-05-16Add GetID to the .i file.Jim Ingham1-0/+3
llvm-svn: 156927
2012-05-11Found one more place where the OkayToDiscard needs to be consulted.Jim Ingham1-0/+3
Also changed the defaults for SBThread::Step* to not delete extant plans. Also added some test cases to test more complex stepping scenarios. llvm-svn: 156667
2012-05-11Make every Python API __len__() method return a PyIntObject.Filipe Cabecinhas9-11/+12
swig 2.0+ seems to default to using PyLongObjects, but the __len__() method _must_ return a PyIntObject. llvm-svn: 156639
2012-05-11Fix SBProcess::ReadMemory's typemap to handle PyLongObjects.Filipe Cabecinhas1-5/+8
llvm-svn: 156638
2012-05-08Print out a notification when the process of a target other than the ↵Jim Ingham1-0/+3
currently selected target stops. llvm-svn: 156433
2012-05-08<rdar://problem/11239650> Fixing a bug where the SetValueFromCString() ↵Enrico Granata1-0/+3
method failed to operate on dynamic values. The fix consists in making the set operation fall through to the parent. We only actually allow this if the dynamic value is at a 0-offset from the parent, or the new value is 0. Other scenarios would need agreement on the actual meaning of the set operation (do we keep offsetting? do we just assume the user knows what they are doing?) so we prevent them, and let the expression parser deal with the complexity llvm-svn: 156422
2012-05-08<rdar://problem/11358639>Greg Clayton1-1/+1
Switch over to the "*-apple-macosx" for desktop and "*-apple-ios" for iOS triples. Also make the selection process for auto selecting platforms based off of an arch much better. llvm-svn: 156354
2012-04-25Remove the "-x" from the finish-swig-Python-LLDB.sh shell options so it ↵Greg Clayton1-1/+1
doesn't print out all of the commands when executing the shell script. Cleaned up the lldb.utils.symbolication, lldb.macosx.heap and lldb.macosx.crashlog. The lldb.macosx.heap can now build a dylib for the current triple into a temp directory and use it from there. llvm-svn: 155577
2012-04-25Returning data formatters to their previous working condition - Plus fixing ↵Enrico Granata1-0/+4
an issue that was preventing Python oneliners from executing llvm-svn: 155563
2012-04-25Now that we have an LLDB package, make the "lldb.macosx.crashlog" module ↵Greg Clayton1-5/+17
work with all of the new module paths. llvm-svn: 155528
2012-04-25Ensure that lldb/runtime is not a dead point in the Python package hierarchy ↵Enrico Granata1-2/+6
- This is a first preliminary step in fixing data formatters after Greg's changes to the Python resources on-disk layout llvm-svn: 155525
2012-04-25Maked LLDB into a package so we can import things without poluting the ↵Greg Clayton1-409/+100
global namespace. Enrico will follow this up with fixing the data formatter test cases that are failing. llvm-svn: 155514
2012-04-23Added the ability to specify the symbol file for a module when adding it to ↵Greg Clayton1-0/+6
a target. llvm-svn: 155384
2012-04-13Expose GetAddressClass() from both the SBAddress and SBInstruction so ↵Greg Clayton2-1/+7
clients can tell the difference between ARM/Thumb opcodes when disassembling ARM. llvm-svn: 154633
2012-04-11Added a property to get the dynamic type which uses the most permissive way ↵Greg Clayton1-2/+8
to get a dynamic type. llvm-svn: 154502
2012-04-02Export the ability to see if a symbol is externally visible and also if the ↵Greg Clayton1-1/+14
symbol was synthetically added to the symbol table (the symbol was not part of the symbol table itself but came from another section). llvm-svn: 153893
2012-03-29Part 1 of a series of fixes meant to improve reliability and increase ease ↵Enrico Granata1-0/+14
of bug fixing for data formatter issues. We are introducing a new Logger class on the Python side. This has the same purpose, but is unrelated, to the C++ logging facility The Pythonic logging can be enabled by using the following scripting commands: (lldb) script Logger._lldb_formatters_debug_level = {0,1,2,...} 0 = no logging 1 = do log 2 = flush after logging each line - slower but safer 3 or more = each time a Logger is constructed, log the function that has created it more log levels may be added, each one being more log-active than the previous by default, the log output will come out on your screen, to direct it to a file: (lldb) script Logger._lldb_formatters_debug_filename = 'filename' that will make the output go to the file - set to None to disable the file output and get screen logging back Logging has been enabled for the C++ STL formatters and for Cocoa class NSData - more logging will follow synthetic children providers for classes list and map (both libstdcpp and libcxx) now have internal capping for safety reasons this will fix crashers where a malformed list or map would not ever meet our termination conditions to set the cap to a different value: (lldb) script {gnu_libstdcpp|libcxx}.{map|list}_capping_size = new_cap (by default, it is 255) you can optionally disable the loop detection algorithm for lists (lldb) script {gnu_libstdcpp|libcxx}.list_uses_loop_detector = False llvm-svn: 153676
2012-03-27adding a summary for Objective-C type 'Class'Enrico Granata1-0/+14
llvm-svn: 153541
2012-03-27Synthetic values are now automatically enabled and active by default. ↵Enrico Granata1-28/+28
SBValue is set up to always wrap a synthetic value when one is available. A new setting enable-synthetic-value is provided on the target to disable this behavior. There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic. The test suite has been changed accordingly. Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching llvm-svn: 153495
2012-03-24Adding a new API call IsTypeComplete() to SBType. This call is meant to ↵Enrico Granata1-1/+6
check if the type has been previously completed or not (which is mostly interesting from a performance point of view) Adding a test case that checks that we do not complete types before due time. This should help us track cases similar to the cascading data formatters. llvm-svn: 153363