summaryrefslogtreecommitdiffstats
path: root/lldb/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add SBValue::GetDynamicValue and SBValue::GetStaticValue API's.Jim Ingham2011-12-081-0/+9
| | | | | | <rdar://problem/10545069> llvm-svn: 146173
* Picked up a new revision of Clang to pull in Objective-CSean Callanan2011-12-015-13/+13
| | | | | | | | | | | | | | | | | enhancements. With these enhancements, the return values of Objective-C methods with unknown return types can be implicitly cast to id for the purpose of making method calls. So what would have required this: (int)[(id)[ClassWithNoDebugInfo methodReturningObject] methodReturningInt] can now be written as: (int)[[ClassWithNoDebugInfo methodReturningObject] methodReturningInt] llvm-svn: 145567
* SBProcess.PutSTDIN() needs to be properly typemapped when swigging,Johnny Chen2011-11-283-0/+15
| | | | | | | | | | | | | | | | | so that we can do Python scripting like this: target = self.dbg.CreateTarget(self.exe) self.dbg.SetAsync(True) process = target.LaunchSimple(None, None, os.getcwd()) process.PutSTDIN("Line 1 Entered.\n") process.PutSTDIN("Line 2 Entered.\n") process.PutSTDIN("Line 3 Entered.\n") Add TestProcessIO.py to exercise the process IO API: PutSTDIN()/GetSTDOUT()/GetSTDERR(). llvm-svn: 145282
* Clarify the SBProcess Python API GetSTDOUT()/GetSTDERR(). They look ↵Johnny Chen2011-11-281-0/+10
| | | | | | | | different from the C++ API due to swig typemapping. llvm-svn: 145260
* Pulled in a new revision of LLVM/Clang and addedSean Callanan2011-11-196-66/+143
| | | | | | | | | | | | | several patches. These patches fix a problem where templated types were not being completed the first time they were used, and fix a variety of minor issues I discovered while fixing that problem. One of the previous local patches was resolved in the most recent Clang, so I removed it. The others will be removed in due course. llvm-svn: 144984
* This commit completes the rearchitecting of ClangASTSourceSean Callanan2011-11-183-1/+114
| | | | | | | | | | | | | | | | | | | | | to allow variables in the persistent variable store to know how to complete themselves from debug information. That fixes a variety of bugs during dematerialization of expression results and also makes persistent variable and result variables ($foo, $4, ...) more useful. I have also added logging improvements that make it much easier to figure out how types are moving from place to place, and made some checking a little more aggressive. The commit includes patches to Clang which are currently being integrated into Clang proper; once these fixes are in Clang top-of-tree, these patches will be removed. The patches don't fix API; rather, they fix some internal bugs in Clang's ASTImporter that were exposed when LLDB was moving types from place to place multiple times. llvm-svn: 144969
* Pulled in a new version of LLVM/Clang to solve a varietySean Callanan2011-11-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of problems with Objective-C object completion. To go along with the LLVM/Clang-side fixes, we have a variety of Objective-C improvements. Fixes include: - It is now possible to run expressions when stopped in an Objective-C class method and have "self" act just like "self" would act in the class method itself (i.e., [self classMethod] works without casting the return type if debug info is present). To accomplish this, the expression masquerades as a class method added by a category. - Objective-C objects can now provide methods and properties and methods to Clang on demand (i.e., the ASTImporter sets hasExternalVisibleDecls on Objective-C interface objects). - Objective-C built-in types, which had long been a bone of contention (should we be using "id"? "id*"?), are now fetched correctly using accessor functions on ClangASTContext. We inhibit searches for them in the debug information. There are also a variety of logging fixes, and I made two changes to the test suite: - Enabled a test case for Objective-C properties in the current translation unit. - Added a test case for calling Objective-C class methods when stopped in a class method. llvm-svn: 144607
* <rdar://problem/10126482>Greg Clayton2011-11-133-3/+20
| | | | | | | | | | | | | | | Fixed an issues with the SBType and SBTypeMember classes: - Fixed SBType to be able to dump itself from python - Fixed SBType::GetNumberOfFields() to return the correct value for objective C interfaces - Fixed SBTypeMember to be able to dump itself from python - Fixed the SBTypeMember ability to get a field offset in bytes (the value being returned was wrong) - Added the SBTypeMember ability to get a field offset in bits Cleaned up a lot of the Stream usage in the SB API files. llvm-svn: 144493
* Updated LLVM/Clang to pull in a fix for Objective-CSean Callanan2011-11-111-2/+2
| | | | | | | | | | interfaces. This allows us to pull in Objective-C method types on demand, which is also now implemented. Also added a minor fix to prevent multiple-definition errors for "Class" and "id". llvm-svn: 144405
* <rdar://problem/9334299>Greg Clayton2011-11-101-0/+3
| | | | | | Added the ability to get a type without qualifiers (const, volatile, restrict, etc). llvm-svn: 144302
* Add a missing ')' in the comment.Johnny Chen2011-11-081-1/+1
| | | | llvm-svn: 144145
* Updated LLVM/Clang to pick up a fix for imports ofSean Callanan2011-11-042-33/+59
| | | | | | | | | | | | | | | C++ vtables, fixing a record layout problem in the expression parser. Also fixed various problems with the generation and unpacking of llvm.zip given our new better handling of multiple architectures in the LLVM build. (And added a log message that will hopefully catch record layout problems in the future.) llvm-svn: 143741
* Fixed the Xcode project building of LLVM to be a bit more user friendly:Greg Clayton2011-11-043-95/+138
| | | | | | | | | | | | | | | | | | | - If you download and build the sources in the Xcode project, x86_64 builds by default using the "llvm.zip" checkpointed LLVM. - If you delete the "lldb/llvm.zip" and the "lldb/llvm" folder, and build the Xcode project will download the right LLVM sources and build them from scratch - If you have a "lldb/llvm" folder already that contains a "lldb/llvm/lib" directory, we will use the sources you have placed in the LLDB directory. Python can now be disabled for platforms that don't support it. Changed the way the libllvmclang.a files get used. They now all get built into arch specific directories and never get merged into universal binaries as this was causing issues where you would have to go and delete the file if you wanted to build an extra architecture slice. llvm-svn: 143678
* ...And forgot to check in build-llvm.pl. Sigh.Sean Callanan2011-11-021-2/+2
| | | | llvm-svn: 143586
* Fix typo in the docstring.Johnny Chen2011-10-261-2/+2
| | | | llvm-svn: 142996
* Updated LLVM/Clang to pull in a variety of typeSean Callanan2011-10-211-2/+2
| | | | | | | | importation fixes, reducing the amount of requests made to LLDB for unknown types and increasing fidelity of the expression parser. llvm-svn: 142639
* Add docstrings for SetCondition() and GetCondition() APIs.Johnny Chen2011-10-183-0/+31
| | | | llvm-svn: 142396
* this patch introduces a new command script import command which takes as ↵Enrico Granata2011-10-171-1/+83
| | | | | | input a filename for a Python script and imports the module contained in that file. the containing directory is added to the Python path such that dependencies are honored. also, the module may contain an __lldb_init_module(debugger,dict) function, which gets called after importing, and which can somehow initialize the module's interaction with lldb llvm-svn: 142283
* Add a commnad to set a condition for a watchpoint. Example:Johnny Chen2011-10-171-0/+6
| | | | | | | | | | | | | | | watchpoint modify -c 'global==5' modifies the last created watchpoint so that the condition expression is evaluated at the stop point to decide whether we should proceed with the stopping. Also add SBWatchpont::SetCondition(const char *condition) to set condition programmatically. Test cases to come later. llvm-svn: 142227
* Added a buildbot script that automatically checksSean Callanan2011-10-141-0/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | out the latest LLDB, LLVM and Clang and makes sure they work okay together. The buildbot is currently Mac OS X only because it uses xcodebuild. Right now, the portion that runs the LLDB test suite is commented out because of code-signing problems (specifically, on Mac OS 10.7 a UI dialog appears asking for the user's permission to attach to the inferior process). You can use the buildbot like this: ./scripts/buildbot.py -b /tmp/lldb-build -l /tmp/lldb.log /tmp/lldb-build and /tmp/lldb.log should not exist when the script is run. /tmp/lldb-build is a temporary directory and is removed at the end of a normal execution. /tmp/lldb.log is a log file that sticks around. The buildbot does not require built versions of anything; it will do the building itself. llvm-svn: 142006
* Add SBWatchpoint::GetError() API, which is not currently populated as yet.Johnny Chen2011-10-141-3/+6
| | | | llvm-svn: 141979
* SBValue::Watch() and SBValue::WatchPointee() are now the official API for ↵Johnny Chen2011-10-145-33/+20
| | | | | | | | | | | | | | | | | | creating a watchpoint for either the variable encapsulated by SBValue (Watch) or the pointee encapsulated by SBValue (WatchPointee). Removed SBFrame::WatchValue() and SBFrame::WatchLocation() API as a result of that. Modified the watchpoint related test suite to reflect the change. Plus replacing WatchpointLocation with Watchpoint throughout the code base. There are still cleanups to be dome. This patch passes the whole test suite. Check it in so that we aggressively catch regressions. llvm-svn: 141925
* Cleaned up the SBWatchpoint public API.Greg Clayton2011-10-137-37/+47
| | | | llvm-svn: 141876
* Add a SBTarget::BreakpointCreateByName API that allows you to specify the nameJim Ingham2011-10-111-0/+6
| | | | | | type mask. llvm-svn: 141625
* Updated LLVM/Clang to pull in the latest ARM disassembler.Sean Callanan2011-10-071-3/+2
| | | | | | | | This involved minor changes to the way we report Objective-C methods, as well as cosmetic changes and added parameters for a variety of Clang APIs. llvm-svn: 141437
* Mention SBBreakpointLocation::GetAddress in the Python .i file.Jim Ingham2011-10-071-0/+3
| | | | llvm-svn: 141429
* Add more docstring to the Python interface file for SBSection.Johnny Chen2011-10-031-1/+22
| | | | llvm-svn: 141044
* Add comment markers for in_range(symbol, section).Johnny Chen2011-10-031-0/+3
| | | | llvm-svn: 141033
* Add SBFrame.WatchLocation() to find and watch the location pointed to byJohnny Chen2011-10-013-3/+13
| | | | | | | | | a variable usng the frame as the scope. Add TestSetWatchpoint.py to exercise this API. Also fix some SWIG Python docstrings. llvm-svn: 140914
* Cleaned up the the code that figures out the inlined stack frames given a Greg Clayton2011-10-011-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | symbol context that represents an inlined function. This function has been renamed internally to: bool SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc, SymbolContext &next_frame_sc, Address &next_frame_pc) const; And externally to: SBSymbolContext SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc, SBAddress &parent_frame_addr) const; The correct blocks are now correctly calculated. Switched the stack backtracing engine (in StackFrameList) and the address context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...) so all inlined callstacks will match exactly. llvm-svn: 140910
* Add docstring to in_range() function residing in the lldb module.Johnny Chen2011-09-301-0/+1
| | | | llvm-svn: 140833
* Migrate the in_range(symbol, section) and symbol_iter(module, section) ↵Johnny Chen2011-09-302-6/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | utility functions from lldbutil.py to the lldb.py proper. The in_range() function becomes a function in the lldb module. And the symbol_iter() function becomes a method within the SBModule called symbol_in_section_iter(). Example: # Iterates the text section and prints each symbols within each sub-section. for subsec in text_sec: print INDENT + repr(subsec) for sym in exe_module.symbol_in_section_iter(subsec): print INDENT2 + repr(sym) print INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType()) might produce this following output: [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870) symbol type: code id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0) symbol type: code id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c) symbol type: code id = {0x00000023}, name = 'start', address = 0x0000000100001780 symbol type: code [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62) symbol type: trampoline id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68) symbol type: trampoline id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e) symbol type: trampoline id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74) symbol type: trampoline id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a) symbol type: trampoline id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80) symbol type: trampoline id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86) symbol type: trampoline id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c) symbol type: trampoline id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92) symbol type: trampoline id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98) symbol type: trampoline id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e) symbol type: trampoline id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4) symbol type: trampoline [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame llvm-svn: 140830
* Add SBTarget::GetLastCreatedWatchpointLocation() API and export to the ↵Johnny Chen2011-09-272-5/+9
| | | | | | | | | | | Python interface. Also add rich comparison methods (__eq__ and __ne__) for SBWatchpointLocation. Modify TestWatchpointLocationIter.py to exercise the new APIs. Add fuzz testings for the recently added SBTarget APIs related to watchpoint manipulations. llvm-svn: 140633
* Export the watchpoint related API (SBWatchpointLocation class and added ↵Johnny Chen2011-09-276-6/+124
| | | | | | | | | | | | | | SBTarget methods) to the Python interface. Implement yet another (threre're 3 now) iterator protocol for SBTarget: watchpoint_location_iter(), to iterate on the available watchpoint locations. And add a print representation for SBWatchpointLocation. Exercise some of these Python API with TestWatchpointLocationIter.py. llvm-svn: 140595
* Fixed the public and internal disassembler API to be named correctly:Greg Clayton2011-09-271-2/+2
| | | | | | | | | | | | | | | const char * SBInstruction::GetMnemonic() const char * SBInstruction::GetOperands() const char * SBInstruction::GetComment() Fixed the symbolicate example script and the internals. llvm-svn: 140591
* Added more functionality to the public API to allow for betterGreg Clayton2011-09-264-6/+57
| | | | | | | | | | | | | | | | | | symbolication. Also improved the SBInstruction API to allow access to the instruction opcode name, mnemonics, comment and instruction data. Added the ability to edit SBLineEntry objects (change the file, line and column), and also allow SBSymbolContext objects to be modified (set module, comp unit, function, block, line entry or symbol). The SymbolContext and SBSymbolContext can now generate inlined call stack infomration for symbolication much easier using the SymbolContext::GetParentInlinedFrameInfo(...) and SBSymbolContext::GetParentInlinedFrameInfo(...) methods. llvm-svn: 140518
* Added the ability to get all section contents, or the sectionGreg Clayton2011-09-243-1/+11
| | | | | | | | | | | | | | | | | | | | | contents starting at an offset (2 separate methods). This helps the scripting interface stay more natural by allowing both from Python. Added the ability to dump data with address annotations when call SBData::GetDescription(). Hooked up the SBSection to the __repr__ so you can print section objects from within python. Improved the dumping of symbols from python. Fixed the .i interface references which were set to "Relative to this Group" which somehow included Jim's "lldb-clean" root directory in the path. The interfaces are now in a folder called "interfaces" withing the Xcode API subfolder. llvm-svn: 140451
* SBSection supports iteration through its subsections, represented as ↵Johnny Chen2011-09-243-3/+15
| | | | | | | | | SBSection as well. SBModule supports an additional SBSection iteration, besides the original SBSymbol iteration. Add docstrings and implement the two SBSection iteration protocols. llvm-svn: 140449
* Fixed build issues after recent checkin.Greg Clayton2011-09-241-0/+3
| | | | | | Added the ability to get the name of the SBSection. llvm-svn: 140444
* Added missing file.Greg Clayton2011-09-241-0/+65
| | | | llvm-svn: 140442
* Added to the public API to allow symbolication:Greg Clayton2011-09-245-5/+48
| | | | | | | | | | | | | | | | | - New SBSection objects that are object file sections which can be accessed through the SBModule classes. You can get the number of sections, get a section at index, and find a section by name. - SBSections can contain subsections (first find "__TEXT" on darwin, then us the resulting SBSection to find "__text" sub section). - Set load addresses for a SBSection in the SBTarget interface - Set the load addresses of all SBSection in a SBModule in the SBTarget interface - Add a new module the an existing target in the SBTarget interface - Get a SBSection from a SBAddress object This should get us a lot closer to being able to symbolicate using LLDB through the public API. llvm-svn: 140437
* Add an SB API SBFrame::WatchValue() and exported to the Python interface toJohnny Chen2011-09-241-0/+9
| | | | | | | | | | | | | | | | set a watchpoint Pythonically. If the find-and-watch-a-variable operation fails, an invalid SBValue is returned, instead. Example Python usage: value = frame0.WatchValue('global', lldb.eValueTypeVariableGlobal, lldb.LLDB_WATCH_TYPE_READ|lldb.LLDB_WATCH_TYPE_WRITE) Add TestSetWatchpoint.py to exercise this API. We have 400 test cases now. llvm-svn: 140436
* Added the ability to restrict breakpoints by function name, function regexp, ↵Jim Ingham2011-09-232-1/+7
| | | | | | | | | | selector etc to specific source files. Added SB API's to specify these source files & also more than one module. Added an "exact" option to CompileUnit's FindLineEntry API. llvm-svn: 140362
* Add a new breakpoint type "break by source regular expression".Jim Ingham2011-09-214-2/+51
| | | | | | | | | Fix the RegularExpression class so it has a real copy constructor. Fix the breakpoint setting with multiple shared libraries so it makes one breakpoint not one per shared library. Add SBFileSpecList, to be used to expose the above to the SB interface (not done yet.) llvm-svn: 140225
* Make sure to print out register names when reading registers and alsoGreg Clayton2011-09-171-6/+65
| | | | | | be able to display 256 byte registers. llvm-svn: 139980
* Untabify and fix indentations. Tabs are bad.Johnny Chen2011-09-151-51/+51
| | | | llvm-svn: 139862
* Adding "-n", "-p" and "-w" flags to the lldb command-line tool toJim Ingham2011-09-131-0/+6
| | | | | | allow attaching from the command line. llvm-svn: 139665
* SBSourceManager now gets the real source manager either from the Debugger or ↵Jim Ingham2011-09-132-1/+4
| | | | | | | | Target. Also, move the SourceManager file cache into the debugger so it can be shared amongst the targets. llvm-svn: 139564
* Added the ability to introspect types thourgh the public SBType interface.Greg Clayton2011-09-092-32/+82
| | | | | | | | Fixed up many API calls to not be "const" as const doesn't mean anything to most of our lldb::SB objects since they contain a shared pointer, auto_ptr, or pointer to the types which circumvent the constness anyway. llvm-svn: 139428
* Fixed the error message:Johnny Chen2011-09-091-33/+33
| | | | | | | | ./build-swig-Python.sh: line 76: INTERFACE_FILES: command not found when running SWIG, which was introduced during the last checkin. llvm-svn: 139376
OpenPOWER on IntegriCloud