summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
Commit message (Collapse)AuthorAgeFilesLines
...
* rdar://problem/11457143 [ER] need "watchpoint command ..."Johnny Chen2012-08-091-0/+79
| | | | | | Add 'watchpoint command add/delete/list' to lldb, plus two .py test files. llvm-svn: 161638
* <rdar://problem/11275622>Greg Clayton2012-07-311-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
* Added an lldb_private & equivalent SB API to send an AsyncInterrupt to the ↵Jim Ingham2012-07-271-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
* Add "vAttachOrWait" to debugserver, so you can implement "attach to the ↵Jim Ingham2012-07-201-0/+6
| | | | | | process if it exists OR wait for it" without race conditions. Use that in lldb. llvm-svn: 160578
* Add accessors on process to get & set the selected thread by IndexID (useful ↵Jim Ingham2012-07-132-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
* Added documentation for many of our python properties and also made the ↵Greg Clayton2012-06-2927-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
* Added the ability to read the dSYM plist file with source remappings even ↵Greg Clayton2012-06-271-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
* Modify the ranges_access() helper function to be able to lookup the address ↵Greg Clayton2012-06-271-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
* Fixed the get_process_thread_list function to correctly return a list of all ↵Greg Clayton2012-06-271-1/+1
| | | | | | threads in a process. llvm-svn: 159288
* Make a way to set the result status for Python defined commands, and don't ↵Jim Ingham2012-06-271-0/+3
| | | | | | | | overwrite the status of the result if the python command has set it. llvm-svn: 159273
* Make raw & parsed commands subclasses of CommandObject rather than having ↵Jim Ingham2012-06-081-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
* rdar://problem/11584012Johnny Chen2012-06-043-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
* Fix the comments about LLDB_DISABLE_PYTHON in the python swig shell scripts ↵Jim Ingham2012-05-262-3/+8
| | | | | | to be more clear. llvm-svn: 157506
* Fix missing Resources/Python directory for macosx build.Johnny Chen2012-05-242-3/+3
| | | | llvm-svn: 157405
* Change the "Debug" build to use the current MacOSX SDK. Fix the swig ↵Jim Ingham2012-05-241-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
* Add SBProcess::GetNumSupportedHardwareWatchpoints() API and export it ↵Johnny Chen2012-05-231-0/+3
| | | | | | | | through the Python scripting bridge. Add/modify some test cases. llvm-svn: 157353
* Add GetID to the .i file.Jim Ingham2012-05-161-0/+3
| | | | llvm-svn: 156927
* Found one more place where the OkayToDiscard needs to be consulted.Jim Ingham2012-05-111-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
* Make every Python API __len__() method return a PyIntObject.Filipe Cabecinhas2012-05-119-11/+12
| | | | | | | swig 2.0+ seems to default to using PyLongObjects, but the __len__() method _must_ return a PyIntObject. llvm-svn: 156639
* Fix SBProcess::ReadMemory's typemap to handle PyLongObjects.Filipe Cabecinhas2012-05-111-5/+8
| | | | llvm-svn: 156638
* Print out a notification when the process of a target other than the ↵Jim Ingham2012-05-081-0/+3
| | | | | | currently selected target stops. llvm-svn: 156433
* <rdar://problem/11239650> Fixing a bug where the SetValueFromCString() ↵Enrico Granata2012-05-081-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
* <rdar://problem/11358639>Greg Clayton2012-05-081-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
* Remove the "-x" from the finish-swig-Python-LLDB.sh shell options so it ↵Greg Clayton2012-04-251-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
* Returning data formatters to their previous working condition - Plus fixing ↵Enrico Granata2012-04-251-0/+4
| | | | | | an issue that was preventing Python oneliners from executing llvm-svn: 155563
* Now that we have an LLDB package, make the "lldb.macosx.crashlog" module ↵Greg Clayton2012-04-251-5/+17
| | | | | | work with all of the new module paths. llvm-svn: 155528
* Ensure that lldb/runtime is not a dead point in the Python package hierarchy ↵Enrico Granata2012-04-251-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
* Maked LLDB into a package so we can import things without poluting the ↵Greg Clayton2012-04-251-409/+100
| | | | | | | | global namespace. Enrico will follow this up with fixing the data formatter test cases that are failing. llvm-svn: 155514
* Added the ability to specify the symbol file for a module when adding it to ↵Greg Clayton2012-04-231-0/+6
| | | | | | a target. llvm-svn: 155384
* Expose GetAddressClass() from both the SBAddress and SBInstruction so ↵Greg Clayton2012-04-132-1/+7
| | | | | | clients can tell the difference between ARM/Thumb opcodes when disassembling ARM. llvm-svn: 154633
* Added a property to get the dynamic type which uses the most permissive way ↵Greg Clayton2012-04-111-2/+8
| | | | | | to get a dynamic type. llvm-svn: 154502
* Export the ability to see if a symbol is externally visible and also if the ↵Greg Clayton2012-04-021-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
* Part 1 of a series of fixes meant to improve reliability and increase ease ↵Enrico Granata2012-03-291-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
* adding a summary for Objective-C type 'Class'Enrico Granata2012-03-271-0/+14
| | | | llvm-svn: 153541
* Synthetic values are now automatically enabled and active by default. ↵Enrico Granata2012-03-271-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
* Adding a new API call IsTypeComplete() to SBType. This call is meant to ↵Enrico Granata2012-03-241-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
* Massive enumeration name changes: a number of enums in ValueObject were not ↵Enrico Granata2012-03-191-5/+13
| | | | | | | | | | | | | | | | | | following the naming pattern Changes to synthetic children: - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly) claim to itself be synthetic - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place) Some clean ups to the summary generation code Centralized the code that clears out user-visible strings and data in ValueObject More efficient summaries for libc++ containers llvm-svn: 153061
* Export the APIs submitted by Dawn to the Python bindings. Add a simple test ↵Johnny Chen2012-03-163-1/+20
| | | | | | case for the SBModule.compile_unit_iter() API. llvm-svn: 152952
* Added formatters for libc++ (http://libcxx.llvm.org):Enrico Granata2012-03-121-0/+14
| | | | | | | | | | | | | std::string has a summary provider std::vector std::list and std::map have both a summary and a synthetic children provider Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic) The formatters-stl test cases have been divided to be separate for libcxx and libstdcpp. This separation is necessary because (a) we need different compiler flags for libc++ than for libstdcpp (b) libc++ inlines a lot more than libstdcpp and some code changes were required to accommodate this difference llvm-svn: 152570
* Added the ability to disassembly "count" instructions given a SBAddress. Greg Clayton2012-03-061-0/+3
| | | | | | | | | | | This was done in SBTarget: lldb::SBInstructionList lldb::SBTarget::ReadInstructions (lldb::SBAddress base_addr, uint32_t count); Also cleaned up a few files in the LLDB.framework settings. llvm-svn: 152152
* Add a command and an SB API to create exception breakpoints. Make the break ↵Jim Ingham2012-03-061-0/+12
| | | | | | output prettier for Exception breakpoints. llvm-svn: 152081
* Copying a new file required for the updated formatters to work into ↵Enrico Granata2012-03-051-0/+14
| | | | | | LLDB.framework llvm-svn: 152053
* rdar://problem/10976649Johnny Chen2012-03-051-0/+3
| | | | | | | Add SBFrame::IsEqual(const SBFrame &that) method and export it to the Python binding. Alos add a test case test_frame_api_IsEqual() to TestFrames.py file. llvm-svn: 152050
* added a new formatter for CF(Mutable)BitVectorEnrico Granata2012-03-033-12/+178
| | | | | | | | fixed a few potential NULL-pointer derefs in ValueObject we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain llvm-svn: 151962
* (a) adding formatters for:Enrico Granata2012-03-021-0/+14
| | | | | | | | NSTimeZone and CFTimeZonRef SEL and related types CFGregorianDate llvm-svn: 151866
* (a) adding an introspection formatter for NS(Mutable)IndexSetEnrico Granata2012-03-011-0/+14
| | | | | | | | | (b) fixes and improvements to the formatters for NSDate and NSString (c) adding an introspection formatter for NSCountedSet (d) making the Objective-C formatters test cases pass on both 64 and 32 bit one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass llvm-svn: 151826
* This commit:Enrico Granata2012-02-292-91/+79
| | | | | | | | | | | | | a) adds a Python summary provider for NSDate b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side d) contains much needed performance improvements: 1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time 2) redundant memory reads in the Python ObjC runtime wrapper are eliminated 3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure llvm-svn: 151703
* Added some missing accessors to the SBAttachInfo for user and group IDGreg Clayton2012-02-241-0/+18
| | | | | | getting, setting, and checking. llvm-svn: 151408
* Fixed the launching code when using the new SBLaunchInfo.Greg Clayton2012-02-241-21/+2
| | | | llvm-svn: 151392
* Added the new way we will eventually do all attaches and launches. First clientsGreg Clayton2012-02-241-0/+183
| | | | | | | | | | | | | | | | | | | | | will fill out either a SBLaunchInfo or SBAttachInfo class, then call: SBProcess SBTarget::Launch (SBLaunchInfo &, SBError &); SBProcess SBTarget::Attach (SBAttachInfo &, SBError &); The attach is working right now and allows the ability to set many filters such as the parent process ID, the user/group ID, the effective user/group ID, and much more. The launch is not yet working, but I will get this working soon. By changing our launch and attach calls to take an object, it allows us to add more capabilities to launching and attaching without having to have launch and attach functions that take more and more arguments. Once this is all working we will deprecated the older launch and attach fucntions and eventually remove them. llvm-svn: 151344
OpenPOWER on IntegriCloud