summaryrefslogtreecommitdiffstats
path: root/lldb/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Fix remaining Python issues leftover from my previous patch.Charles Davis2011-06-011-3/+7
| | | | | | | | | | | | | - The Swig post-processing scripts are now run. - edit-swig-python-wrapper-file.py has been modified so it can be run from the Makefile. - The issue that prompted me to pass -classic to swig is fixed by this, so -classic isn't passed anymore. Python shouldn't complain anymore about a missing method 'FindDebuggerByID' on the SBDebugger object whenever lldb is run. llvm-svn: 132383
* Use the with statement to simplify the build script.Johnny Chen2011-05-271-42/+20
| | | | llvm-svn: 132221
* Added comment.Johnny Chen2011-05-241-0/+1
| | | | llvm-svn: 132019
* Comment change.Johnny Chen2011-05-241-1/+1
| | | | llvm-svn: 132018
* Fix a potential bug resulting from the wrong assumption that SWIG puts out ↵Johnny Chen2011-05-241-8/+8
| | | | | | | | | the __init__ method definition before other method definitions. Instead, do without it and process the class with IsValid() method definition in all possible states. llvm-svn: 132016
* Update comment.Johnny Chen2011-05-241-1/+2
| | | | llvm-svn: 132002
* This commit integrates support for the LLVM MCJITSean Callanan2011-05-232-2/+5
| | | | | | | | | | | | | | | | | | | | | | | into the mainline LLDB codebase. MCJIT introduces API improvements and better architectural support. This commit adds a new subsystem, the ProcessDataAllocator, which is responsible for performing static data allocations on behalf of the IR transformer. MCJIT currently does not support the relocations required to store the constant pool in the same allocation as the function body, so we allocate a heap region separately and redirect static data references from the expression to that heap region in a new IR modification pass. This patch also fixes bugs in the IR transformations that were exposed by the transition to the MCJIT. Finally, the patch also pulls in a more recent revision of LLVM so that the MCJIT is available for use. llvm-svn: 131923
* Fixed an issue in GDBRemoteCommunicationClient where we weren't listening toGreg Clayton2011-05-201-0/+89
| | | | | | | | | | | | | | | | | | | | the "payload_length" argument for the "payload" packet data. This meant we could end up sending random extra data with a packet depending on how the packet was constructed. Fixed GDBRemoteRegisterContext to properly save and restore all registers. Previous fixes had been added to work around the "payload_length" issues fixed above and aren't needed anymore. Fix logging in GDBRemoteCommunication to make sure we log the correct packet data being sent by using the packet length when dumping the packet contents. Added register definitions for 'arm-lldb' in the "disasm-gdb-remote.pl" script so if you have a register dump from the GDB remote that doesn't include the qRegisterInfo packets, you can manually tell the script which registers are which. llvm-svn: 131715
* Added a perl script to disassemble, into human readable form, the GDB remoteGreg Clayton2011-05-201-0/+1897
| | | | | | | | packet output from "log enable gdb-remote packets". This should help people track down and see what is going wrong more easily when you have log output that includes GDB remote packets. llvm-svn: 131713
* Add truth value testing to those lldb Python objects with the IsValid() ↵Johnny Chen2011-05-171-5/+33
| | | | | | | | | | | method definitions. object.__nonzero__(self) is called to implement truth value testing and the built-in operation bool(), via a simple delegation to self.IsValid(). Change tests under python_api/lldbutil to utilize this mechanism. llvm-svn: 131494
* Add implementation of built-in function len() for those lldb containers withJohnny Chen2011-05-161-1/+7
| | | | | | | | | | | | | | | unambiguous iteration support. So that we could, for example: ... REGs = lldbutil.get_GPRs(frame) print "Number of general purpose registers: %d" % len(REGs) for reg in REGs: print "%s => %s" %(reg.GetName(), reg.GetValue()) ... llvm-svn: 131418
* Updated to use the latest LLVM/Clang, to pick up JITSean Callanan2011-05-151-1/+1
| | | | | | changes. llvm-svn: 131391
* Add implementation of '==' and '!=' for SBFileSpec and SBModule. Modify a ↵Johnny Chen2011-05-021-4/+23
| | | | | | test case to take advantage of 'ths_module == that_module'. llvm-svn: 130709
* Fix a typo in comment.Johnny Chen2011-05-021-1/+1
| | | | llvm-svn: 130698
* Update comments.Johnny Chen2011-04-292-3/+3
| | | | llvm-svn: 130533
* Fix a bug introduced in my previous checkin, where the state was not properlyJohnny Chen2011-04-291-2/+3
| | | | | | restored after parsing "SBTarget". Indentation matters in Python. :-) llvm-svn: 130532
* Add the Python rich comparison methods for SBBreakpoint, where GetID() returnsJohnny Chen2011-04-291-10/+26
| | | | | | | the breakpoint ID and provides the semantics needed for '==' and '!='. And modify LLDBIteratorTestCase.lldb_iter_2() to use '==' between two SBBreakpoint's. llvm-svn: 130531
* Fix a typo.Johnny Chen2011-04-281-1/+1
| | | | llvm-svn: 130461
* Move the iteration protocol of lldb objects to the auto-generated lldb ↵Johnny Chen2011-04-283-26/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | Python module. This is so that the objects which support the iteration protocol are immediately obvious from looking at the lldb.py file. SBTarget supports two types of iterations: module and breakpoint. For an SBTarget instance, you will need to issue either: for m in target.module_iter() or for b in target.breakpoint_iter() For other single iteration protocol objects, just use, for example: for thread in process: ID = thread.GetThreadID() for frame in thread: frame.Disassemble() .... llvm-svn: 130442
* Make SBBreakpointLocation::GetDescription() API to be consistent with SBTarget,Johnny Chen2011-04-251-1/+1
| | | | | | | | | | i.e., with 'SBStream &description' first, followed by 'DescriptionLevel level'. Modify lldbutil.py so that get_description() for a target or breakpoint location can just take the lldb object itself without specifying an option to mean option lldb.eDescriptionLevelBrief. Modify TestTargetAPI.py to exercise this logic path. llvm-svn: 130147
* Did some work on the "register read" command to only show the first registerGreg Clayton2011-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set by default when dumping registers. If you want to see all of the register sets you can use the "--all" option: (lldb) register read --all If you want to just see some register sets, you can currently specify them by index: (lldb) register read --set 0 --set 2 We need to get shorter register set names soon so we can specify the register sets by name without having to type too much. I will make this change soon. You can also have any integer encoded registers resolve the address values back to any code or data from the object files using the "--lookup" option. Below is sample output when stopped in the libc function "puts" with some const strings in registers: Process 8973 stopped * thread #1: tid = 0x2c03, 0x00007fff828fa30f libSystem.B.dylib`puts + 1, stop reason = instruction step into frame #0: 0x00007fff828fa30f libSystem.B.dylib`puts + 1 (lldb) register read --lookup General Purpose Registers: rax = 0x0000000100000e98 "----------------------------------------------------------------------" rbx = 0x0000000000000000 rcx = 0x0000000000000001 rdx = 0x0000000000000000 rdi = 0x0000000100000e98 "----------------------------------------------------------------------" rsi = 0x0000000100800000 rbp = 0x00007fff5fbff710 rsp = 0x00007fff5fbff280 r8 = 0x0000000000000040 r9 = 0x0000000000000000 r10 = 0x0000000000000000 r11 = 0x0000000000000246 r12 = 0x0000000000000000 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x0000000000000000 rip = 0x00007fff828fa30f libSystem.B.dylib`puts + 1 rflags = 0x0000000000000246 cs = 0x0000000000000027 fs = 0x0000000000000000 gs = 0x0000000000000000 As we can see, we see two constant strings and the PC (register "rip") is showing the code it resolves to. I fixed the register "--format" option to work as expected. Added a setting to disable skipping the function prologue when setting breakpoints as a target settings variable: (lldb) settings set target.skip-prologue false Updated the user settings controller boolean value handler funciton to be able to take the default value so it can correctly respond to the eVarSetOperationClear operation. Did some usability work on the OptionValue classes. Fixed the "image lookup" command to correctly respond to the "--verbose" option and display the detailed symbol context information when looking up line table entries and functions by name. This previously was only working for address lookups. llvm-svn: 129977
* Updated LLVM to pick up fixes to the ARM instructionSean Callanan2011-04-141-1/+1
| | | | | | tables. llvm-svn: 129500
* Modified the ArchSpec to take an optional "Platform *" when setting the triple.Greg Clayton2011-04-071-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to have a platform selected, then specify a triple using "i386" and have the remaining triple items (vendor, os, and environment) set automatically. Many interpreter commands take the "--arch" option to specify an architecture triple, so now the command options needed to be able to get to the current platform, so the Options class now take a reference to the interpreter on construction. Modified the build LLVM building in the Xcode project to use the new Xcode project level user definitions: LLVM_BUILD_DIR - a path to the llvm build directory LLVM_SOURCE_DIR - a path to the llvm sources for the llvm that will be used to build lldb LLVM_CONFIGURATION - the configuration that lldb is built for (Release, Release+Asserts, Debug, Debug+Asserts). I also changed the LLVM build to not check if "lldb/llvm" is a symlink and then assume it is a real llvm build directory versus the unzipped llvm.zip package, so now you can actually have a "lldb/llvm" directory in your lldb sources. llvm-svn: 129112
* Updated LLDB to use a recent LLVM/Clang, pullingSean Callanan2011-03-262-2/+2
| | | | | | in stability fixes for the ARM and Thumb disassemblers. llvm-svn: 128316
* Fixed the LLDB build so that we can have private types, private enums andGreg Clayton2011-03-242-2/+2
| | | | | | | | public types and public enums. This was done to keep the SWIG stuff from parsing all sorts of enums and types that weren't needed, and allows us to abstract our API better. llvm-svn: 128239
* Update autogen'd LLDB_vers.c.Stephen Wilson2011-03-231-1/+1
| | | | | | | | The makefile build uses scripts/generate-vers.pl to build an appropriate LLDB_vers.c file. The declarations for these symbols now carry a liblldb_core prefix so update the script to generate the correct names. llvm-svn: 128135
* Fix compile warnings wrt LLDBWrapPython.cpp.Johnny Chen2011-03-231-2/+2
| | | | llvm-svn: 128124
* Abtracted the innards of lldb-core away from the SB interface. There was someGreg Clayton2011-03-221-3/+6
| | | | | | | | | | | | | | | | overlap in the SWIG integration which has now been fixed by introducing callbacks for initializing SWIG for each language (python only right now). There was also a breakpoint command callback that called into SWIG which has been abtracted into a callback to avoid cross over as well. Added a new binary: lldb-platform This will be the start of the remote platform that will use as much of the Host functionality to do its job so it should just work on all platforms. It is pretty hollowed out for now, but soon it will implement a platform using the GDB remote packets as the transport. llvm-svn: 128053
* Updated LLVM/Clang to the latest release, to pickSean Callanan2011-03-151-1/+1
| | | | | | up AVX disassembly support. llvm-svn: 127695
* Updated to LLVM/Clang revision 127600.Sean Callanan2011-03-151-1/+2
| | | | llvm-svn: 127634
* There's no sense checking for < 0 with a return type of size_t:Johnny Chen2011-03-081-5/+0
| | | | | | | size_t SBProcess::ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error); llvm-svn: 127292
* Add TestThreadAPI.py file to house the Python SBThread API test cases.Johnny Chen2011-03-071-0/+27
| | | | | | | | | | | | | | | Currently it has only test cases for SBThread.GetStopDescription() API. Also modified lldb.swig to add typemap for (char *dst, size_t dst_len) which occurs for SBThread::GetStopDescription() C++ API. For Python scripting: # Due to the typemap magic (see lldb.swig), we pass in an (int)length to GetStopDescription # and expect to get a Python string as the result object! # The 100 is just an arbitrary number specifying the buffer size. stop_description = thread.GetStopDescription(100) llvm-svn: 127173
* Add TestProcessAPI.py which exercises some Python SBProcess API. In ↵Johnny Chen2011-03-011-4/+4
| | | | | | | | | | | | | particular, this tests the SBProcess.ReadMemory() API, which, due to SWIG typemap'ing, expects 3 arguments (the location to read from, the size in bytes to read, and an SBError object), and returns the result as a Python string object. On SnowLeopard where this has been tested, the SWIG script needs to be pampered (use the exact same parameter names as in SBProcess.h) in order for this to work. llvm-svn: 126736
* Look for swig in /usr/bin and /usr/local/bin.Jim Ingham2011-03-012-2/+24
| | | | llvm-svn: 126732
* Updated Clang to a version that supports propagatingSean Callanan2011-01-271-1/+1
| | | | | | | | the "virtual" flag when importing a C++ function declaration. Made changes to LLDB to support other changes in Clang. llvm-svn: 124355
* Updated to revision 123723 of LLVM, to bring inSean Callanan2011-01-181-3/+1
| | | | | | support for minimal type import functionality. llvm-svn: 123787
* Fixed an error in the type map for "char **" that was a bad memory smasher.Greg Clayton2011-01-141-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | Anytime we had a valid python list that was trying to go from Python down into our C++ API, it was allocating too little memory and it ended up smashing whatever was next to the allocated memory. Added typemap conversions for "void *, size_t" so we can get SBProcess::ReadMemory() working. Also added a typemap for "const void *, size_t" so we can get SBProcess::WriteMemory() to work. Fixed an issue in the DWARF parser where we weren't correctly calculating the DeclContext for all types and classes. We now should be a lot more accurate. Fixes include: enums should now be setting their parent decl context correctly. We saw a lot of examples where enums in classes were not being properly namespace scoped. Also, classes within classes now get properly scoped. Fixed the objective C runtime pointer checkers to let "nil" pointers through since these are accepted by compiled code. We also now don't call "abort()" when a pointer doesn't validate correctly since this was wreaking havoc on the process due to the way abort() works. We now just dereference memory which should give us an exception from which we can easily and reliably recover. llvm-svn: 123428
* Split up the Python script interpreter code to allow multiple script ↵Caroline Tice2011-01-141-8/+58
| | | | | | | | | | | 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
* Patch by Stephen Wilson to make Swig happy building on linux.Johnny Chen2010-12-161-0/+1
| | | | | | Pass the test suite on Mac OS X Snow Leopard. llvm-svn: 121924
* Updated to latest Clang revision. This involvedSean Callanan2010-12-131-1/+1
| | | | | | | | very minor changes, changing how we get the target type from a TypedefType, adding a parameter to EnumDecl::Create(), and other minor tweaks. llvm-svn: 121663
* Updated to latest LLVM/Clang for external AST source changes that allowGreg Clayton2010-12-021-1/+1
| | | | | | | TagDecl subclasses and Objective C interfaces to complete themselves through the ExternalASTSource class. llvm-svn: 120749
* Updated to latest and greatest clang for a "print cvr-qualifiers on function Greg Clayton2010-11-191-1/+1
| | | | | | declarations" fix. llvm-svn: 119847
* Updated to the LLVM/Clang of 2010-11-17 at 3:30pm.Sean Callanan2010-11-181-1/+1
| | | | llvm-svn: 119677
* Updated LLVM to latest version as of 10/28 atSean Callanan2010-10-291-1/+1
| | | | | | 7pm, and made minor integration fixes. llvm-svn: 117680
* Remove references to particular Python version (use the system defaultCaroline Tice2010-10-282-17/+41
| | | | | | | | | | version); change include statements to use Python.h in the Python framework on Mac OS X systems; leave it using regular Python.h on other systems. Note: I think this *ought* to work properly on Linux systems, but I don't have a system to test it on... llvm-svn: 117612
* First pass at adding logging capabilities for the API functions. At the momentCaroline Tice2010-10-262-2/+20
| | | | | | | | | | | | | | | | | | it logs the function calls, their arguments and the return values. This is not complete or polished, but I am committing it now, at the request of someone who really wants to use it, even though it's not really done. It currently does not attempt to log all the functions, just the most important ones. I will be making further adjustments to the API logging code over the next few days/weeks. (Suggestions for improvements are welcome). Update the Python build scripts to re-build the swig C++ file whenever the python-extensions.swig file is modified. Correct the help for 'log enable' command (give it the correct number & type of arguments). llvm-svn: 117349
* Add header files that were added to lldb.swig to the buildCaroline Tice2010-10-181-0/+5
| | | | | | | script, so it can keep track of dependencies accurately (for knowing when to re-build LLDBWrapPython.cpp). llvm-svn: 116765
* Wrap the file writing operations inside a with statement to simplify code.Johnny Chen2010-10-141-11/+3
| | | | llvm-svn: 116486
* Change the call within lldb.py to 'SBDebugger.Initialize()' from ↵Johnny Chen2010-10-141-1/+4
| | | | | | | | | | | | 'lldb.SBDebugger.Initialize()'. Inside the lldb module, there's no need (and as a matter of fact, incorrect) to specify the 'lldb' module name. Comment out the call to lldb.SBDebugger.Initialize() within the test driver itself, since it is already done when we import the lldb.py module. llvm-svn: 116485
* Fix some memory leaks.Caroline Tice2010-10-121-0/+1
| | | | | | | Add call to lldb.SBDebugger.Initialize() to lldb.py, so it automatically gets called when the lldb Python module gets loaded. llvm-svn: 116345
OpenPOWER on IntegriCloud