6855784d6c31c060c230d99f6107c52fa22f1b3f |
26-Jul-2013 |
Jason Molenda <jmolenda@apple.com> |
Add an SBFrame::FindRegister() method to make it a little easier to retrieve a register value. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187184 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
52f792329be5db8e38961350589e97e8f2823acd |
12-Jul-2013 |
Greg Clayton <gclayton@apple.com> |
Huge change to clean up types. A long time ago we start with clang types that were created by the symbol files and there were many functions in lldb_private::ClangASTContext that helped. Later we create ClangASTType which contains a clang::ASTContext and an opauque QualType, but we didn't switch over to fully using it. There were a lot of places where we would pass around a raw clang_type_t and also pass along a clang::ASTContext separately. This left room for error. This checkin change all type code over to use ClangASTType everywhere and I cleaned up the interfaces quite a bit. Any code that was in ClangASTContext that was type related, was moved over into ClangASTType. All code that used these types was switched over to use all of the new goodness. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@186130 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
b9d995d0863e1860c12c4ace0d5eb0ba832f9c99 |
09-Jul-2013 |
Enrico Granata <egranata@apple.com> |
Second attempt at getting the PyCallable changes in trunk Thanks to Daniel Malea for helping test this patch for Linux happiness! git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185965 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BError.h
|
f9215bae3f7f76ad98bace0097821a12415690c5 |
09-Jul-2013 |
Greg Clayton <gclayton@apple.com> |
Added a way to extract the module specifications from a file. A module specification is information that is required to describe a module (executable, shared library, object file, ect). This information includes host path, platform path (remote path), symbol file path, UUID, object name (for objects in .a files for example you could have an object name of "foo.o"), and target triple. Module specification can be used to create a module, or used to add a module to a target. A list of module specifications can be used to enumerate objects in container objects (like universal mach files and BSD archive files). There are two new classes: lldb::SBModuleSpec lldb::SBModuleSpecList The SBModuleSpec wraps up a lldb_private::ModuleSpec, and SBModuleSpecList wraps up a lldb_private::ModuleSpecList. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185877 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BFileSpec.h
BModule.h
BModuleSpec.h
BStream.h
BTarget.h
|
26bc105b1882a78de609d46d148ad2b5c4d50656 |
03-Jul-2013 |
Daniel Malea <daniel.malea@intel.com> |
Revert commits that cause broken builds on GCC buildbots - build fails due to PyCallable template definition inside an extern "C" scope This commit reverts 185240, 184893 and 184608. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185560 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BError.h
|
9c9a7bf57d081271c7e971decfe221561a920bcd |
26-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/14266411> The semi-unofficial way of returning a status from a Python command was to return a string (e.g. return "no such variable was found") that LLDB would pick as a clue of an error having happened This checkin changes that: - SBCommandReturnObject now exports a SetError() call, which can take an SBError or a plain C-string - script commands now drop any return value and expect the SBCommandReturnObject ("return object") to be filled in appropriately - if you do nothing, a success will be assumed If your commands were relying on returning a value and having LLDB pick that up as an error, please change your commands to SetError() through the return object or expect changes in behavior git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184893 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BError.h
|
001cd53e9d8d9e481ada536924ea7563b84ee9cf |
21-Jun-2013 |
Enrico Granata <egranata@apple.com> |
In thread and frame format strings, it is now allowed to use Python functions to generate part or all of the output text Specifically, the ${target ${process ${thread and ${frame specifiers have been extended to allow a subkeyword .script:<fctName> (e.g. ${frame.script:FooFunction}) The functions are prototyped as def FooFunction(Object,unused) where object is of the respective SB-type (SBTarget for target.script, ... and so on) This has not been implemented for ${var because it would be akin to a Python summary which is already well-defined in LLDB git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184500 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
BThread.h
|
77e67a51acb825d79d25be687c085833713d5205 |
19-Jun-2013 |
Greg Clayton <gclayton@apple.com> |
Implemented a types.py module that allows types to be inspected for padding. The script was able to point out and save 40 bytes in each lldb_private::Section by being very careful where we need to have virtual destructors and also by re-ordering members. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184364 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
a8b56238ce138e70433a0ce0b4218c9257beae38 |
19-Jun-2013 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get a list of types from a SBModule or SBCompileUnit. Sebastien Metrot wanted this, and sent a hollowed out patch. I filled in the blanks and did the low level implementation. The new functions are: //------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// module. /// /// @param[in] type_mask /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct /// and union types. Passing in lldb::eTypeClassAny will return /// all types found in the debug information for this module. /// /// @return /// A list of types in this module that match \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBModule::GetTypes (uint32_t type_mask) //------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// compile unit. /// /// @param[in] type_mask /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct /// and union types. Passing in lldb::eTypeClassAny will return /// all types found in the debug information for this compile /// unit. /// /// @return /// A list of types in this compile unit that match \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBCompileUnit::GetTypes (uint32_t type_mask = lldb::eTypeClassAny); This lets you request types by filling out a mask that contains one or more bits from the lldb::TypeClass enumerations, so you can only get the types you really want. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184251 91177308-0d34-0410-b5e6-96231b3b80d8
BCompileUnit.h
BModule.h
BType.h
|
ba3ebe1d3e6d13c42f7e35ff715431573af65681 |
13-Jun-2013 |
Greg Clayton <gclayton@apple.com> |
Added a SBSection::GetParent() to the API. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183948 91177308-0d34-0410-b5e6-96231b3b80d8
BSection.h
|
a4fc694105acabdb05dd758f24062aa1419cdb9a |
04-Jun-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13988982> LLDB API versioning This checkin makes the LLDB API versioned We are starting at version 1.0 and will then revise and update the API from there Further details: API versioning --------------------------------- The LLDB API is versioned independently of the LLDB source base Our API version numbers are composed of a major and a minor number The major number means a complete and stable revision of the API. Major numbers are compatibility breakers (i.e. when we change the API major number, there is no promise of compatibility with the previous major version and we are free to remove and/or change any APIs) Minor numbers are a work-in-progress evolution of the API. APIs will not be removed or changed across minor versions (minors do not break compatibility). However, we can deprecate APIs in minor versions or add new APIs in minor versions A deprecated API is supposedly going to be removed in the next major version and will generate a warning if used APIs we add in minor versions will not be removed (at least until the following major) but they might theoretically be deprecated in a following minor version Users are discouraged from using the LLDB version number to test for API features and should instead use the API version checking as discussed below API version checking --------------------------------- You can (optionally) sign into an API version checking feature To do so you need to define three macros: LLDB_API_CHECK_VERSIONING - define to any value (or no value) LLDB_API_MAJOR_VERSION_WANTED - which major version of the LLDB API you are targeting LLDB_API_MINOR_VERSION_WANTED - which minor version of the LLDB API you are targeting If these macros exist - LLDB will enable version checking of the public API If LLDB_API_MAJOR_VERSION is not equal to LLDB_API_MAJOR_VERSION_WANTED we will immediately halt your compilation with an error This is by design, since we do not make any promise of compatibility across major versions - if you really want to test your luck, disable the versioning altogether If the major version test passes, you have signed up for a specific minor version of the API Whenever we add or deprecate an API in a minor version, we will mark it with either LLDB_API_NEW_IN_DOT_x - this API is new in LLDB .x LLDB_API_DEPRECATED_IN_DOT_x - this API is deprecated as of .x If you are using an API new in DOT_x if LLDB_API_MINOR_VERSION_WANTED >= x then all is well, else you will get a compilation error This is meant to prevent you from using APIs that are newer than whatever LLDB you want to target If you are using an API deprecated in DOT_x if LLDB_API_MINOR_VERSION_WANTED >= x then you will get a compilation warning, else all is well This is meant to let you know that you are using an API that is deprecated and might go away Caveats --------------------------------- Version checking only works on clang on OSX - you will get an error if you try to enable it on any other OS/compiler If you want to enable version checking on other platforms, you will need to define appropriate implementations for LLDB_API_IMPL_DEPRECATED and LLDB_API_IMPL_TOONEW and any other infrastructure your compiler needs for this purpose We have no deprecation-as-error mode There is no support for API versioning in Python We reserve to use macros whose names begin with LLDB_API_ and you should not use them in your source code as they might conflict with present or future macro names we are using to implement versioning For API implementors: If you need to add a new public API call, please remember to add the LLDB_API_NEW_IN_DOT_x marker in the header file and when you are done with adding stuff, to also update LLDB_API_MINOR_VERSION If you want to remove a function, deprecate it first, by using LLDB_API_DEPRECATED_IN_DOT_x and when you are done with deprecating stuff, to also update LLDB_API_MINOR_VERSION A new major version (LLDB_API_MAJOR_VERSION++) is your only chance to remove and/or change API calls but is probably quite a big deal and you might want to consider deprecating the existing calls for a while before doing your changes A couple more caveats: Currently, the lldb-tool does NOT use the version checking feature. It would be a nice future improvement to make it do that, once we have proper version checking on other OSs APIs marked as deprecated by a comment in the source are still deprecated just that way. A good purpose for API 1.1 might be to deprecate them with appropriate markers git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183244 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
|
17d5a0358d60922707fdab6ec9c3251ca44dd614 |
23-May-2013 |
Michael Sartain <mikesart@valvesoftware.com> |
Add ${ansi.XX} parsing to lldb prompt, use-color setting, and -no-use-colors command line options. settings set use-color [false|true] settings set prompt "${ansi.bold}${ansi.fg.green}(lldb)${ansi.normal} " also "--no-use-colors" on the command prompt git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@182609 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
bef2dde1407f2b7b7cf36739d23439c8f1dd0fc4 |
15-May-2013 |
Jim Ingham <jingham@apple.com> |
Change the mechanism around SBValue::GetSP() so that it always requires the target API lock AND the process StopLocker (if there is a process) before it will hand out SBValues. We were doing this in an ad hoc fashion previously, and then playing whack-a-mole whenever we found a place where we should have been doing this but weren't. Really, it doesn't make sense to be poking at SBValues when the target is running, the dynamic and synthetic values can't really be computed, and the underlying memory may be incoherent. <rdar://problem/13819378> Sometimes when stepping fast, my inferior is killed by debugserver git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181863 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
0e191607adcb0ea8ebd06c278be648a7f5c0097f |
10-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13854277> <rdar://problem/13594769> Main changes in this patch include: - cleanup plug-in interface and use ConstStrings for plug-in names - Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp - Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging The plug-in interface changes: Modified the lldb_private::PluginInterface class that all plug-ins inherit from: Changed: virtual const char * GetPluginName() = 0; To: virtual ConstString GetPluginName() = 0; Removed: virtual const char * GetShortPluginName() = 0; - Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names. - Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
0765e3274aab0551fea7678bee565c7d68e0b786 |
03-May-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11742979> SWIG is smart enough to recognize that C++ operators == and != mean __eq__ and __ne__ in Python and do the appropriate translation But it is not smart enough to recognize that mySBObject == None should return False instead of erroring out The %pythoncode blocks are meant to provide those extra smarts (and they play some SWIG&Python magic to find the right function to call behind the scenes with no risk of typos :-) Lastly, SBBreakpoint provides an == but never provided a != operator - common courtesy is to provide both git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180987 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
|
2e126c53e49aca4be40a124447851d825e572af4 |
02-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Add missing include to LLDB.h -- SBStream git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180954 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
|
761afb822b18c46b2ad84be03f372e90ac1e6143 |
02-May-2013 |
Jim Ingham <jingham@apple.com> |
Recommitting r180831 with trivial fix - remember to return errors if you compute. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180898 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
411ab47806a478d932926ef7a309ea37edf1f7e7 |
01-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Reverting 180831 as it crashes TestDefaultConstructorForAPIObjects.py git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180868 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
b4e08abf4972befc8412bc83a0205fbdc547290e |
01-May-2013 |
Jim Ingham <jingham@apple.com> |
Added an option to "process detach" to keep the process stopped, if the process plugin (or in the case of ProcessGDBRemote the stub we are talking to) know how to do that. rdar://problem/13680832 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180831 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
23df42a102f7f4c83128865e396eb9411f9a3cdd |
26-Apr-2013 |
Andrew Kaylor <andrew.kaylor@intel.com> |
Fixing a typo in the SBThread::Suspend documentation git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180621 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
bf26ea6ffa9426b8f23c78aa8cf18b809beb364c |
23-Apr-2013 |
Enrico Granata <egranata@apple.com> |
Daniel Malea reported seeing warnings for the use of anonymous namespaces in our public API. Removing these namespace { ... } declarations (but still keeping the helper *Impl objects outside of namespace lldb proper) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180067 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
BValueList.h
|
102b2c2681c9a830afe25bfea35557421905e42c |
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BCommandReturnObject.h
BDeclaration.h
BError.h
BExpressionOptions.h
BFileSpec.h
BFileSpecList.h
BLineEntry.h
BSourceManager.h
BStream.h
BStringList.h
BSymbolContext.h
BSymbolContextList.h
BType.h
BValue.h
BValueList.h
|
0b10ef61ea60e24fe7736cd98bd5fb45efe9c816 |
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Missed some cases when switching over to using our STD_UNIQUE_PTR macros. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179796 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
81a96aa6242f7b559770f5dc62316253cb8cb0d4 |
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++. Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179779 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BCommandReturnObject.h
BDeclaration.h
BError.h
BExpressionOptions.h
BFileSpec.h
BFileSpecList.h
BLineEntry.h
BSourceManager.h
BStream.h
BStringList.h
BSymbolContext.h
BSymbolContextList.h
BType.h
|
2c354722318f0fcad087c76f2bc0dc8db9200b4b |
16-Apr-2013 |
Andrew Kaylor <andrew.kaylor@intel.com> |
Adding new Python API function to check for stopped threads. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179577 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
ab8e00e51475b9148626bfdf99549b7ffc3d046d |
13-Apr-2013 |
Sean Callanan <scallanan@apple.com> |
Added a SetData() method to ValueObject. This lets a ValueObject's contents be set from raw data. This has certain limitations (notably, registers can only be set to data that is as large as the register) but will be useful for the new Materializer. I also exposed this interface through SBValue. I have added a testcase that exercises various special cases of SBValue::SetData(). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179437 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
1949951ed623f31f28840af50df4a25c5ce67288 |
12-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Use std::unique_ptr instead of std::auto_ptr. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179328 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
12fbcf5bdbc54e49bf565ec067b3b484c28a52fe |
05-Apr-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13563628> Introducing a negative cache for ObjCLanguageRuntime::LookupInCompleteClassCache() This helps speed up the (common) case of us looking for classes that are hidden deep within Cocoa internals and repeatedly failing at finding type information for them. In order for this to work, we need to clean this cache whenever debug information is added. A new symbols loaded event is added that is triggered with add-dsym (before modules loaded would be triggered for both adding modules and adding symbols). Interested parties can register for this event. Internally, we make sure to clean the negative cache whenever symbols are added. Lastly, ClassDescriptor::IsTagged() has been refactored to GetTaggedPointerInfo() that also (optionally) returns info and value bits. In this way, data formatters can share tagged pointer code instead of duplicating the required arithmetic. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178897 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
59b96d5fdda21be0c7abbe7567af75239748be61 |
25-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
Modified patch from Prabhat Verma to enable loading core files through the SBTarget API. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177932 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
fe6dc6e241c52822710380cec0931351a1d7b2d3 |
14-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13421412> Many "byte size" members and variables were using a mixture of uint32_t and size_t. Switching over to using uint64_t everywhere. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@177091 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
7d4083837c5a258375fdc185d464b4ed15759a4b |
02-Mar-2013 |
Jim Ingham <jingham@apple.com> |
Convert from the C-based LLVM Disassembler shim to the full MC Disassembler API's. Calculate "can branch" using the MC API's rather than our hand-rolled regex'es. As extra credit, allow setting the disassembly flavor for x86 based architectures to intel or att. <rdar://problem/11319574> <rdar://problem/9329275> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176392 91177308-0d34-0410-b5e6-96231b3b80d8
BFunction.h
BSymbol.h
BTarget.h
|
6e612c3ddf614c96310573c81a21aa04f1bd78d8 |
21-Feb-2013 |
Jim Ingham <jingham@apple.com> |
Add some documentation on how HandleCommand work. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175717 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
|
89e248f04ecb87d0df4a4b96158c3fac0a3e43c7 |
09-Feb-2013 |
Jim Ingham <jingham@apple.com> |
Reworked the way Process::RunThreadPlan and the ThreadPlanCallFunction interoperate to fix problems where hitting auto-continue signals while running a thread plan would cause us to lose control of the debug session. <rdar://problem/12993641> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174793 91177308-0d34-0410-b5e6-96231b3b80d8
BExpressionOptions.h
BProcess.h
|
9c7108fecfda761c8c619b6100f680355d289fbe |
07-Feb-2013 |
Enrico Granata <egranata@apple.com> |
Renaming SBValueList::get() to opaque_ptr since it returns a void* instead of an usable object. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174673 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
ac6692008aef670d21d6671cbfb6b5d2110b5d62 |
07-Feb-2013 |
Enrico Granata <egranata@apple.com> |
Correct logging for function calls that return SBValueList git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174670 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
5c1700af5ceb00fd46a97d524a83e4e43453538c |
07-Feb-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13107151> SBValueList was backed by a ValueObjectList. This caused us to lose track of the additional metadata in the ValueImpl that backs SBValue. This checkin fixes that by backing SBValueList with ValueListImpl (that essentially wraps a vector<SBValue>). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174638 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
ad72e52945ee0560fc2b22dce0087d4c7274a218 |
01-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
Allow the target to give out the size of the red zone for given ABIs. A bit of cleanup in the heap module. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174129 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
f509c5ec066599a3399fced39ea36996184939e8 |
29-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12978143> Data formatters now cache themselves. This commit provides a new formatter cache mechanism. Upon resolving a formatter (summary or synthetic), LLDB remembers the resolution for later faster retrieval. Also moved the data formatters subsystem from the core to its own group and folder for easier management, and done some code reorganization. The ObjC runtime v1 now returns a class name if asked for the dynamic type of an object. This is required for formatters caching to work with the v1 runtime. Lastly, this commit disposes of the old hack where ValueObjects had to remember whether they were queried for formatters with their static or dynamic type. Now the ValueObjectDynamicValue class works well enough that we can use its dynamic value setting for the same purpose. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173728 91177308-0d34-0410-b5e6-96231b3b80d8
BTypeSynthetic.h
|
36da2aa6dc5ad9994b638ed09eb81c44cc05540b |
25-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13069948> Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary. So I defined a new "lldb::offset_t" which should be used for all file offsets. After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed. Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173463 91177308-0d34-0410-b5e6-96231b3b80d8
BData.h
|
52ebc0aab1fdecb634801deceeddd71a14c2148c |
19-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13010007> Added the ability for OS plug-ins to lazily populate the thread this. The python OS plug-in classes can now implement the following method: class OperatingSystemPlugin: def create_thread(self, tid, context): # Return a dictionary for a new thread to create it on demand This will add a new thread to the thread list if it doesn't already exist. The example code in lldb/examples/python/operating_system.py has been updated to show how this call us used. Cleaned up the code in PythonDataObjects.cpp/h: - renamed all classes that started with PythonData* to be Python*. - renamed PythonArray to PythonList. Cleaned up the code to use inheritance where - Centralized the code that does ref counting in the PythonObject class to a single function. - Made the "bool PythonObject::Reset(PyObject *)" function be virtual so each subclass can correctly check to ensure a PyObject is of the right type before adopting the object. - Cleaned up all APIs and added new constructors for the Python* classes to they can all construct form: - PyObject * - const PythonObject & - const lldb::ScriptInterpreterObjectSP & Cleaned up code in ScriptInterpreterPython: - Made calling python functions safer by templatizing the production of value formats. Python specifies the value formats based on built in C types (long, long long, etc), and code often uses typedefs for uint32_t, uint64_t, etc when passing arguments down to python. We will now always produce correct value formats as the templatized code will "do the right thing" all the time. - Fixed issues with the ScriptInterpreterPython::Locker where entering the session and leaving the session had a bunch of issues that could cause the "lldb" module globals lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame to not be initialized. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172873 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
392bd8d8356a35a0ad7a9990e1e05d0509971c4b |
16-Jan-2013 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/13021266> Adding FindFirstGlobalVariable to SBModule and SBTarget These calls work like FindGlobalVariables but they only return the first match found and so they can return an SBValue instead of an SBValueList for added convenience of use git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172636 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BTarget.h
|
64742744396c966e8de770e765130629b0c78335 |
16-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13009943> Added a unique integer identifier to processes. Some systems, like JTAG or other simulators, might always assign the same process ID (pid) to the processes that are being debugged. In order for scripts and the APIs to uniquely identify the processes, there needs to be another ID. Now the SBProcess class has: uint32_t SBProcess::GetUniqueID(); This integer ID will help to truly uniquely identify a process and help with appropriate caching that can be associated with a SBProcess object. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172628 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
b794020ffbd6473c59a6e98be044df50abf7fc30 |
15-Jan-2013 |
Jim Ingham <jingham@apple.com> |
Separated the "expr --unwind-on-error" behavior into two parts, actual errors (i.e. crashes) which continue to be controlled by the --unwind-on-error flag, and --ignore-breakpoint which separately controls behavior when a called function hits a breakpoint. For breakpoints, we don't unwind, we either stop, or ignore the breakpoint, which makes more sense. Also make both these behaviors globally settable through "settings set". Also handle the case where a breakpoint command calls code that ends up re-hitting the breakpoint. We were recursing and crashing. Now we just stop without calling the second command. <rdar://problem/12986644> <rdar://problem/9119325> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172503 91177308-0d34-0410-b5e6-96231b3b80d8
BExpressionOptions.h
|
0e3b98e7de6d69613a9729bac9d4b965c0635698 |
09-Jan-2013 |
Jim Ingham <jingham@apple.com> |
Add an SBProcess API to get the current StopID, either considering or ignoring stops caused by expression evaluation. <rdar://problem/12968562> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171914 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
19b646725e7d6bebda787fa3cb55ff223a00d907 |
04-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12928282> Added SBTarget::EvaluateExpression() so expressions can be evaluated without needing a process. Also fixed many functions that deal with clang AST types to be able to properly handle the clang::Type::Elaborated types ("struct foo", "class bar"). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@171476 91177308-0d34-0410-b5e6-96231b3b80d8
BExpressionOptions.h
BTarget.h
BValue.h
|
aa93c931a4c1275b2fecec23ef34f231afda4773 |
21-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Added an SBAPI to get the PythonPath (if the Host knows how to do that). And a -P option to the Driver to print it out. Changed dotest.py to use that to find the PythonPath it should use given the lldb binary it was told to run. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170932 91177308-0d34-0410-b5e6-96231b3b80d8
BHostOS.h
|
9c970a371511a0e31ba9360aa841d445792c1ab0 |
18-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Adding events when watchpoints are set or changed. <rdar://problem/11597849> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170400 91177308-0d34-0410-b5e6-96231b3b80d8
BEvent.h
BFrame.h
BTarget.h
BWatchpoint.h
|
f2ca573e8dc034ecc5050a874d8f01ace0703e18 |
12-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Fixed a few bugs in the "step in" thread plan logic. Added a "step-in-target" flag to "thread step-in" so if you have something like: Process 28464 stopped * thread #1: tid = 0x1c03, function: main , stop reason = breakpoint 1.1 frame #0: 0x0000000100000e08 a.out`main at main.c:62 61 -> 62 int A6 = complex (a(4), b(5), c(6)); // Stop here to step targetting b and hitting breakpoint. 63 and you want to get into "complex" skipping a, b and c, you can do: (lldb) step -t complex Process 28464 stopped * thread #1: tid = 0x1c03, function: complex , stop reason = step in frame #0: 0x0000000100000d0d a.out`complex at main.c:44 41 42 int complex (int first, int second, int third) 43 { -> 44 return first + second + third; // Step in targetting complex should stop here 45 } 46 47 int main (int argc, char const *argv[]) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170008 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
2e2812388b75d3c62c9518cc1a6550ce29325aa6 |
11-Dec-2012 |
Jim Ingham <jingham@apple.com> |
Broadcast an event when the selected thread is changed. <rdar://problem/10976636> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169810 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
18e0830db3f7602e3b97f543161b1b1e21824a44 |
08-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
Added GetCanonicalType() to SBType: lldb::SBType SBType::GetCanonicalType(); git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169655 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
0b93a7546473b15fb14dbc129f1fe5ed6ee14976 |
05-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12749733> Always allows getting builtin types by name even if there is no backing debug information. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169424 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BTarget.h
|
0bce9a22354df3f00e68ffd912119a0741753b7f |
05-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12649160> Added the ability to debug through your process exec'ing itself to the same architecture. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169340 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
b3dafc6a81a014339015701c9872624f2aeddd43 |
04-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12750060> Add the ability to get a symbol or symbols by name and type from a SBModule, and also the ability to get all symbols by name and type from SBTarget objects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169205 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BTarget.h
|
b1087a27f7babc43f332c9d49ac4554892133a41 |
30-Nov-2012 |
Jim Ingham <jingham@apple.com> |
Save and restore terminal state when lldb is suspended with SIGTSTP and resumed with SIGCONT. Readline & gdb have a bunch of code to handle older UNIX'es with other job control mechanisms. I didn't try to replicate that. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169032 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9 |
17-Nov-2012 |
Han Ming Ong <hanming@apple.com> |
<rdar://problem/12720514> Sub-TLF: Provide service to profile the inferior This allows client to query profiling states on the inferior. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168228 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
eeabe815b3d36b69b4666fbbce78a4bf950de3cc |
01-Nov-2012 |
Greg Clayton <gclayton@apple.com> |
Get rid of hack by making the actual call public. This was causing the lldb-platform to not be able to link. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167253 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
1e4d8f06d77559e13844d116515412520b4713cc |
31-Oct-2012 |
Sean Callanan <scallanan@apple.com> |
Rmoved a duplicate version of SetSelectedThreadByID that confused external clients. <rdar://problem/12599528> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167097 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
c7f17c030eb0632a0bb1cd0ebf29900d6d97a902 |
31-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Make blocks that capture their containing method's object pointer look like methods of the containing class so that direct ivar access will work in the expression parser. <rdar://problem/9797999> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167061 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
99270577568c7829116a97094eabceaee9a21737 |
30-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get function return and argument types to SBType(): bool SBType::IsFunctionType (); lldb::SBType SBType::GetFunctionReturnType (); lldb::SBTypeList SBType::GetFunctionArgumentTypes (); git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167023 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
fee26ee9a5db37e71f5d5aed279c634bbdab7c8c |
26-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Add API to get the process plugin name & short name. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166799 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
54037b1488e3344575714d8358728e042fa801c7 |
23-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12493007> Added a new API call to help efficiently determine if a SBValue could have children: bool SBValue::MightHaveChildren (); This is inteneded to be used bui GUI programs that need to show if a SBValue needs a disclosure triangle when displaying a hierarchical type in a tree view without having to complete the type (by calling SBValue::GetNumChildren()) as completing the type is expensive. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166460 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
3d656c729a1ed0abad4e5a2d76f6e8a6904f66aa |
22-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12437442> Given our implementation of ValueObjects we could have a scenario where a ValueObject has a dynamic type of Foo* at one point, and then its dynamic type changes to Bar* If Bar* has synthetic children enabled, by the time we figure that out, our public API is already vending SBValues wrapping a DynamicVO, instead of a SyntheticVO and there was no trivial way for us to change the SP inside an SBValue on the fly This checkin reimplements SBValue in terms of a wrapper, ValueImpl, that allows this substitutions on-the-fly by overriding GetSP() to do The Right Thing (TM) As an additional bonus, GetNonSyntheticValue() now works, and we can get rid of the ForceDisableSyntheticChildren idiom in ScriptInterpreterPython Lastly, this checkin makes sure the synthetic VOs get the correct m_value and m_data from their parents (prevented summaries from working in some cases) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166426 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
75a443b04197d18c7034968e11ce831166df3703 |
17-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
API cleanup. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166070 91177308-0d34-0410-b5e6-96231b3b80d8
BExpressionOptions.h
|
47beabb1386be44e3f90dbc30a0b22c23b93a4dc |
16-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Add the ability to set timeout & "run all threads" options both from the "expr" command and from the SB API's that evaluate expressions. <rdar://problem/12457211> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166062 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BExpressionOptions.h
BFrame.h
BValue.h
|
b8fda50a3e97699af76a406f03d139ee1bd94d01 |
16-Oct-2012 |
Enrico Granata <egranata@apple.com> |
Removing the two extra GetXSize(bool) calls since we do not desire to support them long-term git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166060 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
|
c2bc7944f7c2f10114426f447259a35acb0b1e18 |
16-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12446320> Fixing an issue with our Driver where setting an immediate output would not cause suppression of the final printout. This allows effective output redirection for Python commands git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166058 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
|
949b7178cf48cc4cf8533c729999a6c90785773d |
13-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12490588> From SBType, we can now get a lldb::BasicType enumeration out of an existing type. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165857 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
82560f25ae1b4a55c927df9ccf1bd1becc01b1c1 |
13-Oct-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12490558> SBProcess::SetSelectedThreadByID() had a "uint32_t tid" parameter which would truncate 64 bit thread IDs (lldb::tid_t is 64 bit). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165852 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
49306144bb37f0b3423d992f17cdcc24703374b4 |
11-Oct-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/12462744> Implement a new SBDeclaration class to wrap an lldb_private::Declaration - make a GetDeclaration() API on SBValue to return a declaration. This will only work for vroot variables as they are they only objects for which we currently provide a valid Declaration git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165672 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
BDeclaration.h
BDefines.h
BFileSpec.h
BStream.h
BValue.h
|
94a5d0de4433dce556db59758f3d6124eb0e1a2a |
10-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Change the Thread constructor over to take a Process& rather than a ProcessSP. We can't create Threads with a NULL ProcessSP, so it makes no sense to use the SP. Then make the Thread a Broadcaster, and get it to broadcast when the selected frame is changed (but only from the Command Line) and when Thread::ReturnFromFrame changes the stack. Made the Driver use this notification to print the new thread status rather than doing it in the command. Fixed a few places where people were setting their broadcaster class by hand rather than using the static broadcaster class call. <rdar://problem/12383087> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165640 91177308-0d34-0410-b5e6-96231b3b80d8
BEvent.h
BThread.h
|
2753a024a5a314232baa579c0ada87551aa86988 |
05-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Add one-shot breakpoints (-o option to "break set") and a tbreak alias for our gdb friends. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@165328 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
|
6d101887bb427b3c879c0c06775ab4dcb1cd265b |
29-Sep-2012 |
Enrico Granata <egranata@apple.com> |
Implementing plugins that provide commands. This checkin adds the capability for LLDB to load plugins from external dylibs that can provide new commands It exports an SBCommand class from the public API layer, and a new SBCommandPluginInterface There is a minimal load-only plugin manager built into the debugger, which can be accessed via Debugger::LoadPlugin. Plugins are loaded from two locations at debugger startup (LLDB.framework/Resources/PlugIns and ~/Library/Application Support/LLDB/PlugIns) and more can be (re)loaded via the "plugin load" command For an example of how to make a plugin, refer to the fooplugin.cpp file in examples/plugins/commands Caveats: Currently, the new API objects and features are not exposed via Python. The new commands can only be "parsed" (i.e. not raw) and get their command line via a char** parameter (we do not expose our internal Args object) There is no unloading feature, which can potentially lead to leaks if you overwrite the commands by reloading the same or different plugins There is no API exposed for option parsing, which means you may need to use getopt or roll-your-own git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164865 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
BCommandReturnObject.h
BDebugger.h
BDefines.h
BError.h
|
3fcc297c999218b19d7d5ad049e9c955c4bc481d |
26-Sep-2012 |
Jim Ingham <jingham@apple.com> |
Add an API to figure out whether a breakpoint is internal or not. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@164648 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
|
f59388aa57559d7d074613d65b88abacfd699845 |
14-Sep-2012 |
Jim Ingham <jingham@apple.com> |
Make the unwinding of the stack part of "thread return" work, and add the thread return command. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163867 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
a17a81a1a9ff6b8d87c4a1e47dd874f6ea8a4f1d |
12-Sep-2012 |
Jim Ingham <jingham@apple.com> |
Start at getting "thread return" working. Doesn't work yet. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163670 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
BValue.h
|
df83db835a5e026a2270dcc334e848452208691d |
06-Sep-2012 |
Enrico Granata <egranata@apple.com> |
Restoring an API as deprecated which was removed in a previous commit git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163351 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
43898d79d2a13db64095fcb81bcaf66e7f8de624 |
25-Aug-2012 |
Filipe Cabecinhas <me@filcab.net> |
Added SBDebugger's log callbacks to Python-land - 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162633 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
155ee91cc315888c26de1bfebd876bf35b857329 |
24-Aug-2012 |
Enrico Granata <egranata@apple.com> |
Adding bindings to the Script Interpreter for some basic Python OS plugin functionality (still WIP) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162513 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
c6e82e4a323d7a7168b05365c53c9bc2e0d418e3 |
22-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
Remove further outdated "settings" code and also implement a few missing things. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162376 91177308-0d34-0410-b5e6-96231b3b80d8
BStringList.h
|
f590be8aaa0aba484d828019111d61dff33b273e |
20-Aug-2012 |
Filipe Cabecinhas <me@filcab.net> |
A baton isn't needed to dispatch input. I also added a typemap to make DispatchInput usable in Python. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162204 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
f6132ef983e8a5b98fbe5e184f5128eff8c04730 |
01-Aug-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11275622> 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161091 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
5d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4e |
28-Jul-2012 |
Jim Ingham <jingham@apple.com> |
Added an lldb_private & equivalent SB API to send an AsyncInterrupt to the 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> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160903 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
3a458eb1e413d39546b664813bba9f9ac292357e |
20-Jul-2012 |
Jim Ingham <jingham@apple.com> |
Add "vAttachOrWait" to debugserver, so you can implement "attach to the process if it exists OR wait for it" without race conditions. Use that in lldb. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160578 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
efbdd2280873cc87634bf4f4a37ab8b99662522a |
13-Jul-2012 |
Jim Ingham <jingham@apple.com> |
Add accessors on process to get & set the selected thread by IndexID (useful since that's the one that "thread list" shows and it won't get reused even if the underlying system thread ID gets reused. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160187 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
bcaf99a74367d464dd38011e26b9b4be56b503ba |
12-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11791234> Fixed a case where the python interpreter could end up holding onto a previous lldb::SBProcess (probably in lldb.process) when run under Xcode. Prior to this fix, the lldb::SBProcess held onto a shared pointer to a lldb_private::Process. This in turn could cause the process to still have a thread list with stack frames. The stack frames would have module shared pointers in the lldb_private::SymbolContext objects. We also had issues with things staying in the shared module list too long when we found things by UUID (we didn't remove the out of date ModuleSP from the global module cache). Now all of this is fixed and everything goes away between runs. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160140 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
96f6df8db3ce08861efe8d061b1daef328a4a4c0 |
06-Jul-2012 |
Sean Callanan <scallanan@apple.com> |
Since SBTarget::FindFunctions returns a SBSymbolContextList, we should include the relevant header file. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159840 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
5c5a38e7c640e9448241ec2aca0c60047ec3273c |
28-Jun-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to read the dSYM plist file with source remappings even 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159298 91177308-0d34-0410-b5e6-96231b3b80d8
BSection.h
BTarget.h
|
839de396873071d193ed76b0206686af41540962 |
27-Jun-2012 |
Jim Ingham <jingham@apple.com> |
Make a way to set the result status for Python defined commands, and don't overwrite the status of the result if the python command has set it. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159273 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
|
a442da2c8213b09b6b3869c8e30b5d98023ed7ba |
06-Jun-2012 |
Jim Ingham <jingham@apple.com> |
Add the SBWatchpoint::GetError back, we have clients who use it. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@158092 91177308-0d34-0410-b5e6-96231b3b80d8
BWatchpoint.h
|
8a5ce77ad5356af485a119186fc2ad536d21149b |
05-Jun-2012 |
Johnny Chen <johnny.chen@apple.com> |
Cannot break the existing API client of SBValue::Watch(bool resolve_location, bool read, bool write). Leave this method in the codebase for a while. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157967 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
3f883496e92fce5011f6bf585af3ac6d1cddb64f |
05-Jun-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/11584012 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157964 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
BValue.h
BWatchpoint.h
|
191343e7213d3d717327319352d086f981fa8e58 |
24-May-2012 |
Johnny Chen <johnny.chen@apple.com> |
Add SBProcess::GetNumSupportedHardwareWatchpoints() API and export it through the Python scripting bridge. Add/modify some test cases. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@157353 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
1c4ae3e669a5b2aa0ba0850f8e880eb9fefb719a |
16-May-2012 |
Jim Ingham <jingham@apple.com> |
Add an accessor on SBBreakpointLocation to get its location ID. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156891 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
|
d82bc6d623930e796d596d190399ec2450980e0f |
12-May-2012 |
Jim Ingham <jingham@apple.com> |
Found one more place where the OkayToDiscard needs to be consulted. Also changed the defaults for SBThread::Step* to not delete extant plans. Also added some test cases to test more complex stepping scenarios. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156667 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
f92ddcc2fda5ca564acc37d2fecd4b577dfc2bde |
09-May-2012 |
Jim Ingham <jingham@apple.com> |
Print out a notification when the process of a target other than the currently selected target stops. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156433 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
07baf83fe7ae25ac87d38cd4fc19647b020adfad |
08-May-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11338654> Fixing a bug where having a summary for a bitfield without a format specified would in certain cases crash LLDB - This has also led to refactoring the by-type accessors for the data formatter subsystem. These now belong in our internal layer, and are just invoked by the public API stratum git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156429 91177308-0d34-0410-b5e6-96231b3b80d8
BTypeNameSpecifier.h
|
651cbe2e3f6efb8bd579a5007c2d2f90f0ab7633 |
08-May-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11239650> Fixing a bug where the SetValueFromCString() 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 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156422 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
d9488c8ba7df755686f38a91bd3f9a9270a5a128 |
08-May-2012 |
Enrico Granata <egranata@apple.com> |
Removing spurious friend declaration git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156398 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
4758a3ced524198d2cf9c50bab9b088adcbda9cb |
08-May-2012 |
Enrico Granata <egranata@apple.com> |
First part of a fix to make GetNonSyntheticValue() work correctly git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156397 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
b170aee2daacc83e3d71c3e3acc9d56c89893a7b |
08-May-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11358639> 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156354 91177308-0d34-0410-b5e6-96231b3b80d8
BInstruction.h
|
88e3de205708f14431559072ca258899b5ac31cc |
03-May-2012 |
Jim Ingham <jingham@apple.com> |
Clean up the usage of "MasterPlan" status in ThreadPlans. Only user-initiated plans should be MasterPlans that want to stay on the plan stack. So make all plans NOT MasterPlans by default and then have the SB API's and the CommandObjectThread step commands set this explicitly. Also added a "clean up" phase to the Thread::ShouldStop so that if plans get stranded on the stack, we can remove them. This is done by adding an IsPlanStale method to the thread plans, and if the plan can know that it is no longer relevant, it returns true, and the plan and its sub-plans will get discarded. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@156101 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
f0bc81575b0048a004add5e0212a6a15757dbdb0 |
23-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to specify the symbol file for a module when adding it to a target. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155384 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
7fb143064009e34dbb7a602924e9807375f72a46 |
13-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Expose GetAddressClass() from both the SBAddress and SBInstruction so clients can tell the difference between ARM/Thumb opcodes when disassembling ARM. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154633 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BInstruction.h
|
a894fe78bc15344a0025c1154e414c554ab31dd9 |
05-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Added a new Host class: ReadWriteLock This abstracts read/write locks on the current host system. It is currently backed by pthread_rwlock_t objects so it should work on all unix systems. We also need a way to control multi-threaded access to the process through the public API when it is running. For example it isn't a good idea to try and get stack frames while the process is running. To implement this, the lldb_private::Process class now contains a ReadWriteLock member variable named m_run_lock which is used to control the public process state. The public process state represents the state of the process as the client knows it. The private is used to control the actual current process state. So the public state of the process can be stopped, yet the private state can be running when evaluating an expression for example. Adding the read/write lock where readers are clients that want the process to stay stopped, and writers are clients that run the process, allows us to accurately control multi-threaded access to the process. Switched the SBThread and SBFrame over to us shared pointers to the ExecutionContextRef class instead of making their own class to track this. This fixed an issue with assigning on SBFrame to another and will also centralize the code that tracks weak references to execution context objects into one location. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154099 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BThread.h
|
69c540dc5b2b498e4bb9a4cb8d7cd4e3c993bbbc |
04-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Change SBAddress back to using a std::auto_ptr to a lldb_private::Address as the lldb_private::Address has a weak pointer to the section which has a weak pointer back to the module, so it is safe to have just a lldb_private::Address object now. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154045 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
|
3be42fb4ff54e71afe0b9aac83b7fa3068a3d873 |
02-Apr-2012 |
Greg Clayton <gclayton@apple.com> |
Export the ability to see if a symbol is externally visible and also if the symbol was synthetically added to the symbol table (the symbol was not part of the symbol table itself but came from another section). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153893 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbol.h
|
dba1de8d585f27601162f674d30ab71d9c83ccde |
27-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Synthetic values are now automatically enabled and active by default. 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 git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153495 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
d44c9d31d23d0b44ce40325ad69226889a9638bc |
24-Mar-2012 |
Enrico Granata <egranata@apple.com> |
Adding a new API call IsTypeComplete() to SBType. This call is meant to 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@153363 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
b451f5f1606fc5effdc809fa2261263851fff8f5 |
16-Mar-2012 |
Johnny Chen <johnny.chen@apple.com> |
Patch from dawn@burble.org: GetSupportFileAtIndex(), GetNumSupportFiles(), FindSupportFileIndex(): Add API support for getting the list of files in a compilation unit. GetNumCompileUnits(), GetCompileUnitAtIndex(): Add API support for retrieving the compilation units in a module. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152942 91177308-0d34-0410-b5e6-96231b3b80d8
BCompileUnit.h
BModule.h
|
598df88bd6fc33c6fb330bc859bdc277795501f3 |
14-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10434005> Prepare LLDB to be built with C++11 by hiding all accesses to std::tr1 behind macros that allows us to easily compile for either C++. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152698 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
66c2e19e7c343e1ff0fd31180a12f8a68fc61b6c |
08-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Moved inline functions into SBTarget.cpp and made destructors for SBLaunchInfo and SBAttachInfo to avoid link warnings. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152267 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
a989307c1ec2ef9cd52ec65fb2c877bb2df3aa3a |
06-Mar-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to disassembly "count" instructions given a SBAddress. 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152152 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
4722b10307668368bf0f12fa6b8691e4f4cb5488 |
06-Mar-2012 |
Jim Ingham <jingham@apple.com> |
Add a command and an SB API to create exception breakpoints. Make the break output prettier for Exception breakpoints. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152081 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
0164b750df7e431716abfd3b26f124dfeefeae76 |
05-Mar-2012 |
Johnny Chen <johnny.chen@apple.com> |
rdar://problem/10976649 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@152050 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
f125250ba7bcaa2ea5ee95539a309e3fd2f8b5d7 |
29-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10605072> Added the ability to override command line commands. In some cases GUI interfaces might want to intercept commands like "quit" or "process launch" (which might cause the process to re-run). They can now do so by overriding/intercepting commands by using functions added to SBCommandInterpreter using a callback function. If the callback function returns true, the command is assumed to be handled. If false is returned the command should be evaluated normally. Adopted this up in the Driver.cpp for intercepting the "quit" command. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151708 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
|
80efa5e90a2924575e068cc44ee53e480e1d1467 |
25-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added some missing accessors to the SBAttachInfo for user and group ID getting, setting, and checking. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151408 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
98ca1e668c33bad3095da78977aaa3ee0043e6d7 |
24-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Fixed the launching code when using the new SBLaunchInfo. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151392 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
0a8dcacde404c520f1131c641041dceb9f68b6fa |
24-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added the new way we will eventually do all attaches and launches. First clients 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151344 91177308-0d34-0410-b5e6-96231b3b80d8
BFileSpec.h
BTarget.h
|
3508c387c3f0c9ecc439d98048fd7694d41bab1b |
24-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10103468> I started work on being able to add symbol files after a debug session had started with a new "target symfile add" command and quickly ran into problems with stale Address objects in breakpoint locations that had lldb_private::Section pointers into modules that had been removed or replaced. This also let to grabbing stale modules from those sections. So I needed to thread harded the Address, Section and related objects. To do this I modified the ModuleChild class to now require a ModuleSP on initialization so that a weak reference can created. I also changed all places that were handing out "Section *" to have them hand out SectionSP. All ObjectFile, SymbolFile and SymbolVendors were inheriting from ModuleChild so all of the find plug-in, static creation function and constructors now require ModuleSP references instead of Module *. Address objects now have weak references to their sections which can safely go stale when a module gets destructed. This checkin doesn't complete the "target symfile add" command, but it does get us a lot clioser to being able to do such things without a high risk of crashing or memory corruption. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151336 91177308-0d34-0410-b5e6-96231b3b80d8
BSection.h
|
d8465214c43d29755822670ad21ced2506faae7a |
22-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Make Debugger::SetLoggingCallback public, and expose it through the SB API. Sometimes it is not convenient to provide a log callback right when the debugger is created. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151209 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
49f4bf21e0fb7675d67f95dafe66a098d3205650 |
22-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get a ObjectFile versions from the ObjectFile subclasses if the object files support version numbering. Exposed this through SBModule for upcoming data formatter version checking stuff. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151190 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
c48ca82920bd333c7ccb6ec0e579207add130296 |
21-Feb-2012 |
Jason Molenda <jmolenda@apple.com> |
Patch Enrico's changes from r150558 on 2012-02-14 to build even if Python is not available (LLDB_DISABLE_PYTHON is defined). Change build-swig-Python.sh to emit an empty LLDBPythonWrap.cpp file if this build is LLDB_DISABLE_PYTHON. Change the "Copy to Xcode.app" shell script phase in the lldb.xcodeproj to only do this copying for Mac native builds. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151035 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BDefines.h
BTypeCategory.h
BTypeSummary.h
BTypeSynthetic.h
BValue.h
|
6c530f2201be4788dedf3d5970399220fbd50b11 |
21-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Add a logging mode that takes a callback and flush'es to that callback. Also add SB API's to set this callback, and to enable the log channels. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151018 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
d760907c1d42726fa0c8c48efa28385ed339bb94 |
17-Feb-2012 |
Enrico Granata <granata.enrico@gmail.com> |
Adding formatters for several useful Objective-C/Cocoa data types. The new categories are not enabled at startup, but can be manually activated if desired. Adding new API calls to SBValue to be able to retrieve the associated formatters Some refactoring to FormatNavigator::Get() in order to shrink its size down to more manageable terms (a future, massive, refactoring effort will still be needed) Test cases added for the above git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150784 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
BTypeFilter.h
BTypeFormat.h
BTypeNameSpecifier.h
BTypeSummary.h
BTypeSynthetic.h
BValue.h
|
5a15e6927b5b3234fb3e688717297ba6b5dd6ad7 |
16-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Add a general mechanism to wait on the debugger for Broadcasters of a given class/event bit set. Use this to allow the lldb Driver to emit notifications for breakpoint modifications. <rdar://problem/10619974> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150665 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
BCommunication.h
BDebugger.h
BEvent.h
BListener.h
BProcess.h
BTarget.h
|
16376ed044df3ee70fcf69e19f06af01e71a8e9a |
15-Feb-2012 |
Enrico Granata <granata.enrico@gmail.com> |
<rdar://problem/10062621> New public API for handling formatters: creating, deleting, modifying categories, and formatters, and managing type/formatter association. This provides SB classes for each of the main object types involved in providing formatter support: SBTypeCategory SBTypeFilter SBTypeFormat SBTypeSummary SBTypeSynthetic plus, an SBTypeNameSpecifier class that is used on the public API layer to abstract the notion that formatters can be applied to plain type-names as well as to regular expressions For naming consistency, this patch also renames a lot of formatters-related classes. Plus, the changes in how flags are handled that started with summaries is now extended to other classes as well. A new enum (lldb::eTypeOption) is meant to support this on the public side. The patch also adds several new calls to the formatter infrastructure that are used to implement by-index accessing and several other design changes required to accommodate the new API layer. An architectural change is introduced in that backing objects for formatters now become writable. On the public API layer, CoW is implemented to prevent unwanted propagation of changes. Lastly, there are some modifications in how the "default" category is constructed and managed in relation to other categories. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150558 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BDefines.h
BTypeCategory.h
BTypeFilter.h
BTypeFormat.h
BTypeNameSpecifier.h
BTypeSummary.h
BTypeSynthetic.h
|
28e23861bedbeb5e46be7d2af4c33bf5132422c6 |
08-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Send Breakpoint Changed events for all the relevant changes to breakpoints. Also, provide and use accessors for the thread options on breakpoints so we can control sending the appropriate events. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150057 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BProcess.h
|
7dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2 |
06-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Removed all of the "#ifndef SWIG" from the SB header files since we are using interface (.i) files for each class. Changed the FindFunction class from: uint32_t SBTarget::FindFunctions (const char *name, uint32_t name_type_mask, bool append, lldb::SBSymbolContextList& sc_list) uint32_t SBModule::FindFunctions (const char *name, uint32_t name_type_mask, bool append, lldb::SBSymbolContextList& sc_list) To: lldb::SBSymbolContextList SBTarget::FindFunctions (const char *name, uint32_t name_type_mask = lldb::eFunctionNameTypeAny); lldb::SBSymbolContextList SBModule::FindFunctions (const char *name, uint32_t name_type_mask = lldb::eFunctionNameTypeAny); This makes the API easier to use from python. Also added the ability to append a SBSymbolContext or a SBSymbolContextList to a SBSymbolContextList. Exposed properties for lldb.SBSymbolContextList in python: lldb.SBSymbolContextList.modules => list() or all lldb.SBModule objects in the list lldb.SBSymbolContextList.compile_units => list() or all lldb.SBCompileUnits objects in the list lldb.SBSymbolContextList.functions => list() or all lldb.SBFunction objects in the list lldb.SBSymbolContextList.blocks => list() or all lldb.SBBlock objects in the list lldb.SBSymbolContextList.line_entries => list() or all lldb.SBLineEntry objects in the list lldb.SBSymbolContextList.symbols => list() or all lldb.SBSymbol objects in the list This allows a call to the SBTarget::FindFunctions(...) and SBModule::FindFunctions(...) and then the result can be used to extract the desired information: sc_list = lldb.target.FindFunctions("erase") for function in sc_list.functions: print function for symbol in sc_list.symbols: print symbol Exposed properties for the lldb.SBSymbolContext objects in python: lldb.SBSymbolContext.module => lldb.SBModule lldb.SBSymbolContext.compile_unit => lldb.SBCompileUnit lldb.SBSymbolContext.function => lldb.SBFunction lldb.SBSymbolContext.block => lldb.SBBlock lldb.SBSymbolContext.line_entry => lldb.SBLineEntry lldb.SBSymbolContext.symbol => lldb.SBSymbol Exposed properties for the lldb.SBBlock objects in python: lldb.SBBlock.parent => lldb.SBBlock for the parent block that contains lldb.SBBlock.sibling => lldb.SBBlock for the sibling block to the current block lldb.SBBlock.first_child => lldb.SBBlock for the first child block to the current block lldb.SBBlock.call_site => for inline functions, return a lldb.declaration object that gives the call site file, line and column lldb.SBBlock.name => for inline functions this is the name of the inline function that this block represents lldb.SBBlock.inlined_block => returns the inlined function block that contains this block (might return itself if the current block is an inlined block) lldb.SBBlock.range[int] => access the address ranges for a block by index, a list() with start and end address is returned lldb.SBBlock.ranges => an array or all address ranges for this block lldb.SBBlock.num_ranges => the number of address ranges for this blcok SBFunction objects can now get the SBType and the SBBlock that represents the top scope of the function. SBBlock objects can now get the variable list from the current block. The value list returned allows varaibles to be viewed prior with no process if code wants to check the variables in a function. There are two ways to get a variable list from a SBBlock: lldb::SBValueList SBBlock::GetVariables (lldb::SBFrame& frame, bool arguments, bool locals, bool statics, lldb::DynamicValueType use_dynamic); lldb::SBValueList SBBlock::GetVariables (lldb::SBTarget& target, bool arguments, bool locals, bool statics); When a SBFrame is used, the values returned will be locked down to the frame and the values will be evaluated in the context of that frame. When a SBTarget is used, global an static variables can be viewed without a running process. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149853 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BBroadcaster.h
BCommandInterpreter.h
BCommandReturnObject.h
BCompileUnit.h
BData.h
BDebugger.h
BError.h
BEvent.h
BFileSpec.h
BFileSpecList.h
BFrame.h
BFunction.h
BInputReader.h
BInstruction.h
BInstructionList.h
BLineEntry.h
BListener.h
BModule.h
BProcess.h
BSection.h
BSourceManager.h
BStream.h
BStringList.h
BSymbol.h
BSymbolContext.h
BSymbolContextList.h
BTarget.h
BThread.h
BType.h
BValue.h
BValueList.h
|
b5a8f1498e1ddaeed5187a878d57ea0b74af9c26 |
05-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10560053> Fixed "target modules list" (aliased to "image list") to output more information by default. Modified the "target modules list" to have a few new options: "--header" or "-h" => show the image header address "--offset" or "-o" => show the image header address offset from the address in the file (the slide applied to the shared library) Removed the "--symfile-basename" or "-S" option, and repurposed it to "--symfile-unique" "-S" which will show the symbol file if it differs from the executable file. ObjectFile's can now be loaded from memory for cases where we don't have the files cached locally in an SDK or net mounted root. ObjectFileMachO can now read mach files from memory. Moved the section data reading code into the ObjectFile so that the object file can get the section data from Process memory if the file is only in memory. lldb_private::Module can now load its object file in a target with a rigid slide (very common operation for most dynamic linkers) by using: bool Module::SetLoadAddress (Target &target, lldb::addr_t offset, bool &changed) lldb::SBModule() now has a new constructor in the public interface: SBModule::SBModule (lldb::SBProcess &process, lldb::addr_t header_addr); This will find an appropriate ObjectFile plug-in to load an image from memory where the object file header is at "header_addr". git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149804 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BProcess.h
|
39f54ea7c3e0f9fb3bdc0d17a8def6781159d24f |
04-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Allow a SBAddress to be created from a SBSection and an offset. Changed the lldb.SBModule.section[<str>] property to return a single section. Added a lldb.SBSection.addr property which returns an lldb.SBAddress object. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149755 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
|
0a19a1b9c25117854f226256805239d95153ed2d |
04-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Convert all python objects in our API to use overload the __str__ method instead of the __repr__. __repr__ is a function that should return an expression that can be used to recreate an python object and we were using it to just return a human readable string. Fixed a crasher when using the new implementation of SBValue::Cast(SBType). Thread hardened lldb::SBValue and lldb::SBWatchpoint and did other general improvements to the API. Fixed a crasher in lldb::SBValue::GetChildMemberWithName() where we didn't correctly handle not having a target. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149743 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
BValue.h
BWatchpoint.h
|
d62b9c18f3fc567fa536e04faadd518cd363a22e |
03-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Expose more convenience functionality in the python classes. lldb.SBValueList now exposes the len() method and also allows item access: lldb.SBValueList[<int>] - where <int> is an integer index into the list, returns a single lldb.SBValue which might be empty if the index is out of range lldb.SBValueList[<str>] - where <str> is the name to look for, returns a list() of lldb.SBValue objects with any matching values (the list might be empty if nothing matches) lldb.SBValueList[<re>] - where <re> is a compiles regular expression, returns a list of lldb.SBValue objects for containing any matches or a empty list if nothing matches lldb.SBFrame now exposes: lldb.SBFrame.variables => SBValueList of all variables that are in scope lldb.SBFrame.vars => see lldb.SBFrame.variables lldb.SBFrame.locals => SBValueList of all variables that are locals in the current frame lldb.SBFrame.arguments => SBValueList of all variables that are arguments in the current frame lldb.SBFrame.args => see lldb.SBFrame.arguments lldb.SBFrame.statics => SBValueList of all static variables lldb.SBFrame.registers => SBValueList of all registers for the current frame lldb.SBFrame.regs => see lldb.SBFrame.registers Combine any of the above properties with the new lldb.SBValueList functionality and now you can do: y = lldb.frame.vars['rect.origin.y'] or vars = lldb.frame.vars for i in range len(vars): print vars[i] Also expose "lldb.SBFrame.var(<str>)" where <str> can be en expression path for any variable or child within the variable. This makes it easier to get a value from the current frame like "rect.origin.y". The resulting value is also not a constant result as expressions will return, but a live value that will continue to track the current value for the variable expression path. lldb.SBValue now exposes: lldb.SBValue.unsigned => unsigned integer for the value lldb.SBValue.signed => a signed integer for the value git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149684 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
3eeaf6e715784499520885535236ccff1ba56d1c |
03-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added support to SBType for getting template arguments from a SBType: uint32_t SBType::GetNumberOfTemplateArguments (); lldb::SBType SBType::GetTemplateArgumentType (uint32_t idx); lldb::TemplateArgumentKind SBType::GetTemplateArgumentKind (uint32_t idx); Some lldb::TemplateArgumentKind values don't have a corresponding SBType that will be returned from SBType::GetTemplateArgumentType(). This will help our data formatters do their job by being able to find out the type of template params and do smart things with those. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149658 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
86ad476885a1fc5a14692534fb841be4eee7722a |
01-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
Added fuzz testing for when we call API calls with an invalid object. We previously weren't catching that SBValue::Cast(...) would crash if we had an invalid (empty) SBValue object. Cleaned up the SBType API a bit. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149447 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
0416bdf783a7dc2544b9ab034e225391f8f47343 |
30-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
lldb::SBTarget and lldb::SBProcess are now thread hardened. They both still contain shared pointers to the lldb_private::Target and lldb_private::Process objects respectively as we won't want the target or process just going away. Also cleaned up the lldb::SBModule to remove dangerous pointer accessors. For any code the public API files, we should always be grabbing shared pointers to any objects for the current class, and any other classes prior to running code with them. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149238 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
334d33a19fd28cf41cba74cc61cf149e7101a603 |
30-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
SBFrame is now threadsafe using some extra tricks. One issue is that stack frames might go away (the object itself, not the actual logical frame) when we are single stepping due to the way we currently sometimes end up flushing frames when stepping in/out/over. They later will come back to life represented by another object yet they have the same StackID. Now when you get a lldb::SBFrame object, it will track the frame it is initialized with until the thread goes away or the StackID no longer exists in the stack for the thread it was created on. It uses a weak_ptr to both the frame and thread and also stores the StackID. These three items allow us to determine when the stack frame object has gone away (the weak_ptr will be NULL) and allows us to find the correct frame again. In our test suite we had such cases where we were just getting lucky when something like this happened: 1 - stop at breakpoint 2 - get first frame in thread where we stopped 3 - run an expression that causes the program to JIT and run code 4 - run more expressions on the frame from step 2 which was very very luckily still around inside a shared pointer, yet, not part of the current thread (a new stack frame object had appeared with the same stack ID and depth). We now avoid all such issues and properly keep up to date, or we start returning errors when the frame doesn't exist and always responds with invalid answers. Also fixed the UserSettingsController (not going to rewrite this just yet) so that it doesn't crash on shutdown. Using weak_ptr's came in real handy to track when the master controller has already gone away and this allowed me to pull out the previous NotifyOwnerIsShuttingDown() patch as it is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149231 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BProcess.h
BTarget.h
|
90c5214bc61ee2cdf68236b36d9746ecd275302e |
30-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Removed the "lldb-forward-rtti.h" header file as it was designed to contain all RTTI types, and since we don't use RTTI anymore since clang and llvm don't we don't really need this header file. All shared pointer definitions have been moved into "lldb-forward.h". Defined std::tr1::weak_ptr definitions for all of the types that inherit from enable_shared_from_this() in "lldb-forward.h" in preparation for thread hardening our public API. The first in the thread hardening check-ins. First we start with SBThread. We have issues in our lldb::SB API right now where if you have one object that is being used by two threads we have a race condition. Consider the following code: 1 int 2 SBThread::SomeFunction() 3 { 4 int result = -1; 5 if (m_opaque_sp) 6 { 7 result = m_opaque_sp->DoSomething(); 8 } 9 return result; 10 } And now this happens: Thread 1 enters any SBThread function and checks its m_opaque_sp and is about to execute the code on line 7 but hasn't yet Thread 2 gets to run and class sb_thread.Clear() which calls m_opaque_sp.clear() and clears the contents of the shared pointer member Thread 1 now crashes when it resumes. The solution is to use std::tr1::weak_ptr. Now the SBThread class contains a lldb::ThreadWP (weak pointer to our lldb_private::Thread class) and this function would look like: 1 int 2 SBThread::SomeFunction() 3 { 4 int result = -1; 5 ThreadSP thread_sp(m_opaque_wp.lock()); 6 if (thread_sp) 7 { 8 result = m_opaque_sp->DoSomething(); 9 } 10 return result; 11 } Now we have a solid thread safe API where we get a local copy of our thread shared pointer from our weak_ptr and then we are guaranteed it can't go away during our function. So lldb::SBThread has been thread hardened, more checkins to follow shortly. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149218 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BThread.h
|
1b925206e3c4867fea9eb55a4c6460962cf32564 |
29-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get the target triple, byte order and address byte size from the SBTarget and SBModule interfaces. Also added many python properties for easier access to many things from many SB objects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149191 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BModule.h
BTarget.h
|
177bc682e2b45354e8b0753e705dc84255c42173 |
27-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10750012> Remove a pseudo terminal master open and slave file descriptor that was being used for pythong stdin. It was not hooked up correctly and was causing file descriptor leaks. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@149098 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
|
a6b7e323caa2bbd1b2835dcce775340b27c13bf3 |
07-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
Patch from Enrico Granata that moves SBData related functions into the SBData class instead of requiring a live process in order to be able to create useful SBData objects. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147702 91177308-0d34-0410-b5e6-96231b3b80d8
BData.h
BProcess.h
|
9f074f0e030a74a3efd716a476b436f2d32bdf74 |
06-Jan-2012 |
Johnny Chen <johnny.chen@apple.com> |
http://llvm.org/bugs/show_bug.cgi?id=11619 Allow creating SBData values from arrays or primitives in Python Patch submitted by Enrico Granata. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147639 91177308-0d34-0410-b5e6-96231b3b80d8
BData.h
BProcess.h
|
2f28ece553d2ef0d7b3e8d1419020591ec3818f9 |
04-Jan-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10507811> Be better at detecting when DWARF changes and handle this more gracefully than asserting and exiting. Also fixed up a bunch of system calls that weren't properly checking for EINTR. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@147559 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
e0bd571a8050da2b3462c35c9f209cbc9755c750 |
19-Dec-2011 |
Jim Ingham <jingham@apple.com> |
Add needed Clear methods. <rdar://problem/10596340> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146902 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BValue.h
BValueList.h
|
bcbefa8de7877c5d0674d5816cf96db48b103e6f |
17-Dec-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fixed code rot pointed out by Jim. SBThread::GetStopReasonDataCount/GetStopReasonDataAtIndex() need to handle eStopReasonWatchpoint. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146812 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
1586d9720002e407a3a097baf302de5fa4ca9c1b |
17-Dec-2011 |
Jim Ingham <jingham@apple.com> |
Add the ability to capture the return value in a thread's stop info, and print it as part of the thread format output. Currently this is only done for the ThreadPlanStepOut. Add a convenience API ABI::GetReturnValueObject. Change the ValueObject::EvaluationPoint to BE an ExecutionContextScope, rather than trying to hand out one of its subsidiary object's pointers. That way this will always be good. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146806 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
c5486870833244b1c705901f678f0aa2dca5b67c |
15-Dec-2011 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10584789> Added a static memory pressure function in SBDebugger: void SBDebugger::MemoryPressureDetected () This can be called by applications that detect memory pressure to cause LLDB to release cached information. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146640 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
4a2e33769873d68d5703da5742c0e248f46e3a72 |
15-Dec-2011 |
Greg Clayton <gclayton@apple.com> |
Expose new read memory fucntion through python in SBProcess: size_t SBProcess::ReadCStringFromMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error); uint64_t SBProcess::ReadUnsignedFromMemory (addr_t addr, uint32_t byte_size, lldb::SBError &error); lldb::addr_t SBProcess::ReadPointerFromMemory (addr_t addr, lldb::SBError &error); These ReadCStringFromMemory() has some SWIG type magic that makes it return the python string directly and the "buf" is not needed: error = SBError() max_cstr_len = 256 cstr = lldb.process.ReadCStringFromMemory (0x1000, max_cstr_len, error) if error.Success(): .... The other two functions behave as expteced. This will make it easier to get integer values from the inferior process that are correctly byte swapped. Also for pointers, the correct pointer byte size will be used. Also cleaned up a few printf style warnings for the 32 bit lldb build on darwin. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146636 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
ef1f690aa23e81a14654d4a6fe9df7810f4eda06 |
15-Dec-2011 |
Sean Callanan <scallanan@apple.com> |
I have added a function to SBTarget that allows clients to disassemble a series of raw bytes as demonstrated by a new testcase. In the future, this API will also allow clients to provide a callback that adds comments for addresses in the disassembly. I also modified the SWIG harness to ensure that Python ByteArrays work as well as strings as sources of raw data. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146611 91177308-0d34-0410-b5e6-96231b3b80d8
BInstructionList.h
BTarget.h
|
1b42575189379cb0c1441f74a48127e9ab7335e3 |
08-Dec-2011 |
Jim Ingham <jingham@apple.com> |
Add SBValue::GetDynamicValue and SBValue::GetStaticValue API's. <rdar://problem/10545069> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146173 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
d5b0b447221ab6e1fe5c5223c6bf7604d4377e8b |
02-Dec-2011 |
Greg Clayton <gclayton@apple.com> |
After moving lldb::pid_t to 64 bits, keep a deprecated version around for previous binaries that link against this for a few builds to make sure we can continue to run against previous binaries. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145668 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
96154be69fa240a662419183ed08e1cfc5418164 |
13-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/10126482> 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144493 91177308-0d34-0410-b5e6-96231b3b80d8
BStream.h
BTarget.h
BType.h
|
6e56157a52b093759f13321b7f2d601e3eaea8a0 |
10-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/9334299> Added the ability to get a type without qualifiers (const, volatile, restrict, etc). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144302 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
3e4238d47a6d1a3106f357d2e7b495870721c7ae |
04-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the Xcode project building of LLVM to be a bit more user friendly: - 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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143678 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
BFrame.h
|
712a628dde2f4f786389feecf7e06e59f0853c75 |
17-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add a commnad to set a condition for a watchpoint. Example: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142227 91177308-0d34-0410-b5e6-96231b3b80d8
BWatchpoint.h
|
41a55efdfd779b910fb3515c47357c97e695ec22 |
14-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SBWatchpoint::GetError() API, which is not currently populated as yet. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141979 91177308-0d34-0410-b5e6-96231b3b80d8
BWatchpoint.h
|
ecd4feb5111432d2878e95461220c720cb2d24c8 |
14-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
SBValue::Watch() and SBValue::WatchPointee() are now the official API for 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141925 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BValue.h
BWatchpoint.h
|
1fa6b3d6c83955fe06c63d3a4025f2c0ec431d68 |
13-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the SBWatchpoint public API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141876 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BError.h
BStream.h
BTarget.h
BValue.h
BWatchpoint.h
BWatchpointLocation.h
|
1fb8a2dd636ef408728989d8bbc6d1a7a73177cc |
11-Oct-2011 |
Jim Ingham <jingham@apple.com> |
Add a SBTarget::BreakpointCreateByName API that allows you to specify the name type mask. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141625 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
15afa9f26a38ea55876ac4ee0b17f0ac8137e9c1 |
01-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Removed lldb::SBSourceManager_impl. We export everything in the lldb namespace and this implemenation that backs our lldb::SBSourceManager should not be exported. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140930 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BFileSpec.h
BSourceManager.h
BStream.h
BTarget.h
|
5cac6a54b36dd4f9b0db570720b8d47a487343f9 |
01-Oct-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SBFrame.WatchLocation() to find and watch the location pointed to by a variable usng the frame as the scope. Add TestSetWatchpoint.py to exercise this API. Also fix some SWIG Python docstrings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140914 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
2f57db09a49f2a05a620b8163bbe1e748a46ec73 |
01-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the the code that figures out the inlined stack frames given a 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140910 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbolContext.h
|
5eb54bb63835eb01b200223503b5fd89a7557dd5 |
27-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SBTarget::GetLastCreatedWatchpointLocation() API and export to the 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140633 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
092bd1575675778c6ebe901a7760af7427db617e |
27-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Export the watchpoint related API (SBWatchpointLocation class and added 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140595 91177308-0d34-0410-b5e6-96231b3b80d8
BWatchpointLocation.h
|
d9b4425303fd48210ab104ca6573c869083a8480 |
27-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the public and internal disassembler API to be named correctly: const char * SBInstruction::GetMnemonic() const char * SBInstruction::GetOperands() const char * SBInstruction::GetComment() Fixed the symbolicate example script and the internals. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140591 91177308-0d34-0410-b5e6-96231b3b80d8
BInstruction.h
|
096c293f8d4171448908801d5a1a74b152af1430 |
27-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SB API class SBWatchpointLocation and some extra methods to the SBTarget class to iterate on the available watchpoint locations and to perform watchpoint manipulations. I still need to export the SBWatchpointLocation class as well as the added watchpoint manipulation methods to the Python interface. And write test cases for them. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140575 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BStream.h
BTarget.h
BWatchpointLocation.h
|
23b8abbe214c252028f6e09f79169529c846409d |
26-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added more functionality to the public API to allow for better 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140518 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BCompileUnit.h
BData.h
BInstruction.h
BLineEntry.h
BSymbolContext.h
BTarget.h
|
15ef51e3bd8229d3779f96e08b25b26182c91c6c |
24-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get all section contents, or the section 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140451 91177308-0d34-0410-b5e6-96231b3b80d8
BData.h
BSection.h
BStream.h
|
980c7500ca60ce7ee0917ea77bc9bb4563950c57 |
24-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed build issues after recent checkin. Added the ability to get the name of the SBSection. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140444 91177308-0d34-0410-b5e6-96231b3b80d8
BSection.h
|
9a29f00d3dae2e368bd01226388633fe8653808e |
24-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Add GetAddress to SBBreakpointLocation, and put the .i files in the API section of the Xcode project. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140440 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBreakpointLocation.h
|
3e8c25f62f92145b6fb699b379cbfe72b1245d4a |
24-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added to the public API to allow symbolication: - 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140437 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BData.h
BDebugger.h
BModule.h
BSection.h
BTarget.h
|
4c24b0a9f72c09d2e442ab9dbbf270b6e930f1e8 |
24-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add an SB API SBFrame::WatchValue() and exported to the Python interface to 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140436 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
d6d47976b71187907c1cdeea86fabf7d5534314f |
23-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Added the ability to restrict breakpoints by function name, function regexp, 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140362 91177308-0d34-0410-b5e6-96231b3b80d8
BCompileUnit.h
BFileSpecList.h
BTarget.h
|
73d8eaf0341d3375b8240b3cb089b97b25fa6088 |
22-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added missing forward declarations for SBFileSpecList and SBInstructionList. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140338 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
|
03c8ee5aeafcd6c43f10002a4f8096af01780f86 |
21-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Add a new breakpoint type "break by source regular expression". 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.) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140225 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
BFileSpec.h
BFileSpecList.h
BTarget.h
|
7e5fa7fc1f8efd24c078e063b2c4b5e13ba5be20 |
20-Sep-2011 |
Jason Molenda <jmolenda@apple.com> |
Update declarations for all functions/methods that accept printf-style stdarg formats to use __attribute__ format so the compiler can flag incorrect uses. Fix all incorrect uses. Most of these are innocuous, a few were resulting in crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140185 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BError.h
BStream.h
|
cc7de484073d40dc115e4f1a8271f016718a3714 |
16-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
Untabify and fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139867 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
83dd2039d86b79e9cd5cf320bdb50c838fcb7b9c |
14-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Adding "-n", "-p" and "-w" flags to the lldb command-line tool to allow attaching from the command line. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139665 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
cc637461f6c59851302836c64e0cb002de4f4571 |
13-Sep-2011 |
Jim Ingham <jingham@apple.com> |
SBSourceManager now gets the real source manager either from the Debugger or Target. Also, move the SourceManager file cache into the debugger so it can be shared amongst the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139564 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BFileSpec.h
BSourceManager.h
BStream.h
BTarget.h
|
d68e089f8353eaf845c3559dac6d47b32830974f |
10-Sep-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to introspect types thourgh the public SBType interface. 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139428 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BType.h
BValue.h
|
915448044bac6fdac22a33cc46697dcb771a8df2 |
06-Sep-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Redesign of the interaction between Python and frozen objects: - introduced two new classes ValueObjectConstResultChild and ValueObjectConstResultImpl: the first one is a ValueObjectChild obtained from a ValueObjectConstResult, the second is a common implementation backend for VOCR and VOCRCh of method calls meant to read through pointers stored in frozen objects ; now such reads transparently move from host to target as required - as a consequence of the above, removed code that made target-memory copies of expression results in several places throughout LLDB, and also removed code that enabled to recognize an expression result VO as such - introduced a new GetPointeeData() method in ValueObject that lets you read a given amount of objects of type T from a VO representing a T* or T[], and doing dereferences transparently in private layer it returns a DataExtractor ; in public layer it returns an instance of a newly created lldb::SBData - as GetPointeeData() does the right thing for both frozen and non-frozen ValueObject's, reimplemented ReadPointedString() to use it en lieu of doing the raw read itself - introduced a new GetData() method in ValueObject that lets you get a copy of the data that backs the ValueObject (for pointers, this returns the address without any previous dereferencing steps ; for arrays it actually reads the whole chunk of memory) in public layer this returns an SBData, just like GetPointeeData() - introduced a new CreateValueFromData() method in SBValue that lets you create a new SBValue from a chunk of data wrapped in an SBData the limitation to remember for this kind of SBValue is that they have no address: extracting the address-of for these objects (with any of GetAddress(), GetLoadAddress() and AddressOf()) will return invalid values - added several tests to check that "p"-ing objects (STL classes, char* and char[]) will do the right thing Solved a bug where global pointers to global variables were not dereferenced correctly for display New target setting "max-string-summary-length" gives the maximum number of characters to show in a string when summarizing it, instead of the hardcoded 128 Solved a bug where the summary for char[] and char* would not be shown if the ValueObject's were dumped via the "p" command Removed m_pointers_point_to_load_addrs from ValueObject. Introduced a new m_address_type_of_children, which each ValueObject can set to tell the address type of any pointers and/or references it creates. In the current codebase, this is load address most of the time (the only notable exception being file addresses that generate file address children UNLESS we have a live process) Updated help text for summary-string Fixed an issue in STL formatters where std::stlcontainer::iterator would match the container's synthetic children providers Edited the syntax and help for some commands to have proper argument types git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139160 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
BAddress.h
BData.h
BDefines.h
BError.h
BStream.h
BValue.h
|
3370f0ce9e2ae2fe1f2adf3628f443053602efa4 |
20-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Fixed some SWIG interoperability issues git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138154 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
d8b9b06fcf29565079ba8f3a87fb267d80bcc968 |
20-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to create a SBCommandReturnObject object from a pointer and also to later release the ownership of the pointer object. This was needed for SWIG interaction. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@138133 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
|
6b1596d81c34c6efb10ed51a3572d6b145b73f5b |
17-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Changes to Python commands: - They now have an SBCommandReturnObject instead of an SBStream as third argument - The class CommandObjectPythonFunction has been merged into CommandObjectCommands.cpp - The command to manage them is now: command script with subcommands add, list, delete, clear command alias is returned to its previous functionality - Python commands are now part of an user dictionary, instead of being seen as aliases git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137785 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
|
558dd5bc8b25722fa5b5106586b97ecf99e0026e |
13-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Add a version of SBDebugger::Create which allows us to specify whether to source in the init files or not. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137541 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
574c3d63822cc7fd52bf6f6a94b6882fec4c8ce9 |
13-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Make ValueObject::SetValueFromCString work correctly. Also change the SourceInitFile to look for .lldb-<APPNAME> and source that preferentially if it exists. Also made the breakpoint site report its address as well as its breakpoint number when it gets hit and can't find any the associated locations (usually because the breakpoint got disabled or deleted programmatically between the time it was hit and reported.) Changed ThreadPlanCallFunction to initialize the ivar m_func in the initializers of the constructor, rather than waiting to initialize till later on in the function. Fixed a bug where if you make an SBError and the ask it Success, it returns false. Fixed ValueObject::ResolveValue so that it resolves a temporary value, rather than overwriting the one in the value object. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137536 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
c51ffbf896e398ada5f7e89b2fa5aec6f2224f09 |
12-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
We were leaking a stack frame in StackFrameList in Thread.cpp which could cause extra shared pointer references to one or more modules to be leaked. This would cause many object files to stay around the life of LLDB, so after a recompile and rexecution, we would keep adding more and more memory. After fixing the leak, we found many cases where leaked stack frames were still being used and causing crashes in the test suite. These are now all resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137516 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BCompileUnit.h
BFunction.h
BLineEntry.h
BSymbol.h
BSymbolContext.h
|
0c64baff28c9340f84fa566df1bf9426ddd2dc31 |
06-Aug-2011 |
Johnny Chen <johnny.chen@apple.com> |
On second thought, add the IsValid() method to SBTypeList, making it similar to SBSymbolContextList and SBValueList. Modify the test suite accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136990 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
8c1d7203f726e3a62b832dbeeaf0ae76f9f65222 |
05-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed issues for iOS debugging where if a device has a native architecture that doesn't match the universal slice that is being used for all executables, we weren't correctly descending through the platform architectures and resolving the binaries. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136980 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
c92eb4004a354b0ea085b610b2ba991e575b1c32 |
04-Aug-2011 |
Enrico Granata <granata.enrico@gmail.com> |
APIs to GetValueAsSigned/Unsigned() in SBValue now also accept an SBError parameter to give more info about any problem The synthetic children providers now use the new (safer) APIs to get the values of objects As a side effect, fixed an issue in ValueObject where ResolveValue() was not always updating the value before reading it git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136861 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
0fb0bcc9d4e951145e1b8c783652224c09b23af4 |
04-Aug-2011 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the SBType.h file to not include internal headers and reorganized the SBType implementation classes. Fixed LLDB core and the test suite to not use deprecated SBValue APIs. Added a few new APIs to SBValue: int64_t SBValue::GetValueAsSigned(int64_t fail_value=0); uint64_t SBValue::GetValueAsUnsigned(uint64_t fail_value=0) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136829 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BType.h
BValue.h
|
979e20d127335143ffc89c2e37ec3a8b717ff22d |
29-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Public API changes: - Completely new implementation of SBType - Various enhancements in several other classes Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>: - these return the actual elements into the container as the children of the container - basic template name parsing that works (hopefully) on both Clang and GCC - find them in examples/synthetic and in the test suite in functionalities/data-formatter/data-formatter-python-synth New summary string token ${svar : - the syntax is just the same as in ${var but this new token lets you read the values coming from the synthetic children provider instead of the actual children - Python providers above provide a synthetic child len that returns the number of elements into the container Full bug fix for the issue in which getting byte size for a non-complete type would crash LLDB Several other fixes, including: - inverted the order of arguments in the ClangASTType constructor - EvaluationPoint now only returns SharedPointer's to Target and Process - the help text for several type subcommands now correctly indicates argument-less options as such git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@136504 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BModule.h
BTarget.h
BType.h
BValue.h
|
9ae7cef26612773c6b3422834cec83f0fbb2cf8c |
24-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Python synthetic children: - you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135865 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
a395506fb374f1f589d0d860f5e6c9fa7b1e0b9a |
22-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Make the SBAddress class easier to use when using the public API. SBTarget changes include changing: bool SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr, lldb::SBAddress& addr); to be: lldb::SBAddress SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr); SBAddress can how contruct itself using a load address and a target which can be used to resolve the address: SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This will actually just call the new SetLoadAddress accessor: void SetLoadAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This function will always succeed in making a SBAddress object that can be used in API calls (even if "target" isn't valid). If "target" is valid and there are sections currently loaded, then it will resolve the address to a section offset address if it can. Else an address with a NULL section and an offset that is the "load_addr" that was passed in. We do this because a load address might be from the heap or stack. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135770 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BTarget.h
|
6d91e0a095183e02a84b2833c5cbe46e7963e8ba |
19-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SWIG interface files for SBSymbol, SBSymbolContext, and SBSymbolContextList. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135459 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbol.h
BSymbolContext.h
BSymbolContextList.h
|
fb35e2ad9893ca53f33eb3ce190147c02d97ec87 |
19-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SWIG Python interface files for SBLineEntry, SBListener, and SBModule. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135441 91177308-0d34-0410-b5e6-96231b3b80d8
BLineEntry.h
BListener.h
BModule.h
|
ba6f252fa157521791eef0ba446e281290fe7c85 |
19-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Missed the interface file for SBFunction in the previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135436 91177308-0d34-0410-b5e6-96231b3b80d8
BFunction.h
|
6cf1bc333301e95ad5c96481d63b270eac7a7266 |
19-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SWIG Python interface files for SBDebugger, SBCompileUnit, and SBEvent. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135432 91177308-0d34-0410-b5e6-96231b3b80d8
BCompileUnit.h
BDebugger.h
BEvent.h
|
3cfd5e89ce6b66f271727032b36afb635287a24b |
18-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SWIG Python interface files for SBAddress, SBBlock, SBBreakpoint, and SBBreakpointLocation. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135430 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
|
c3fba812b636dcdede81be622d557efbdc834240 |
18-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SWIG Python interface files for SBProcess, SBThread, and SBFrame. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135419 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BProcess.h
BThread.h
|
854a1ba617fded6eb054b3f93b3299d0a7173ca1 |
18-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add two new interface files SBValue.i and SBValueList.i, instead of directly swigging the header files. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135416 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
BValueList.h
|
ebd63b28c6b7574ed9fbd71e57677c25e57c6a5b |
16-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Create an interface file for SBTarget named SBTarget.i which relieves SBTarget.h of the duty of having SWIG docstring features and multiline string literals embedded within. lldb.swig now %include .../SBTarget.i, instead of .../SBTarget.h. Will create other interface files and transition them over. Also update modify-python-lldb.py to better handle the trailing blank line right before the ending '"""' Python docstring delimiter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135355 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
533ed2fd6d3763654cd35cdc2379e1bf1049e0dd |
15-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add some more docstrings for SBCompileUnit and SBBreakpoint, plus incorporate the doxgen doc block of SBValue::GetChildAtIndex(uint32_t idx, lldb::DynamicValueType use_dynamic, bool can_create_synthetic); into the SBValue docstrings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135295 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BCompileUnit.h
BValue.h
|
8f64c47120c81728aac0ab0d66097c9a92284f6f |
15-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get synthetic child values from SBValue objects that represent pointers and arrays by adding an extra parameter to the SBValue SBValue::GetChildAtIndex (uint32_t idx, DynamicValueType use_dynamic, bool can_create_synthetic); The new "can_create_synthetic" will allow you to create child values that aren't actually a part of the original type. So if you code like: int *foo_ptr = ... And you have a SBValue that contains the value for "foo_ptr": SBValue foo_value = ... You can now get the "foo_ptr[12]" item by doing this: v = foo_value.GetChiltAtIndex (12, lldb.eNoDynamicValues, True); Normall the "foo_value" would only have one child value (an integer), but we can create "synthetic" child values by treating the pointer as an array. Likewise if you have code like: int array[2]; array_value = .... v = array_value.GetChiltAtIndex (0); // Success, v will be valid v = array_value.GetChiltAtIndex (1); // Success, v will be valid v = array_value.GetChiltAtIndex (2); // Fail, v won't be valid, "2" is not a valid zero based index in "array" But if you use the ability to create synthetic children: v = array_value.GetChiltAtIndex (0, lldb.eNoDynamicValues, True); // Success, v will be valid v = array_value.GetChiltAtIndex (1, lldb.eNoDynamicValues, True); // Success, v will be valid v = array_value.GetChiltAtIndex (2, lldb.eNoDynamicValues, True); // Success, v will be valid git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135292 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
f7a9b14c2c02d2fa9fad586c19f29d77533fcc09 |
15-Jul-2011 |
Enrico Granata <granata.enrico@gmail.com> |
Python summary strings: - you can use a Python script to write a summary string for data-types, in one of three ways: -P option and typing the script a line at a time -s option and passing a one-line Python script -F option and passing the name of a Python function these options all work for the "type summary add" command your Python code (if provided through -P or -s) is wrapped in a function that accepts two parameters: valobj (a ValueObject) and dict (an LLDB internal dictionary object). if you use -F and give a function name, you're expected to define the function on your own and with the right prototype. your function, however defined, must return a Python string - test case for the Python summary feature - a few quirks: Python summaries cannot have names, and cannot use regex as type names both issues will be fixed ASAP major redesign of type summary code: - type summary working with strings and type summary working with Python code are two classes, with a common base class SummaryFormat - SummaryFormat classes now are able to actively format objects rather than just aggregating data - cleaner code to print descriptions for summaries the public API now exports a method to easily navigate a ValueObject hierarchy New InputReaderEZ and PriorityPointerPair classes Several minor fixes and improvements git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135238 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
e3a83d21d6f4fd813446fc7471c739507bbe11b5 |
15-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add usage docstring to SBValue.h, and minor update of docstrings for SBValueList.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135230 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
BValueList.h
|
d0d9ccee5532e7c79054580ba2a5f690a17ec926 |
15-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add usage docstrings to SBTarget, SBProcess, and SBThread. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135221 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
BTarget.h
BThread.h
|
7b1b875d7f76905b9b1f1f347b073e87437e760c |
14-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix typo in ConnectRemote() docstring. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135188 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
2de7ce665acfd7040e9372209d2f750c4b58e0fd |
14-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add some more docstrings (includng example usages) to SBTarget.h. Add logic to modify-python-lldb to correct swig's transformation of 'char **argv' and 'char **envp' to 'char argv' and 'char envp' by morphing them into the 'list argv' and 'list envp' (as a list of Python strings). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135114 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
67dde8e176c0ab62056911a3165b62fdcc6259ed |
14-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add some more docstrings for SBTarget. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135108 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
423d8d0d1207c88d8cff25ee0c2ccdf96ddb66b9 |
14-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Use %feature("docstring") for methods of SBModule class so that the methods signature also gets generated in the Python docstring. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135105 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
bbc6342babdd58daa34bb35e35d7d53f59beada1 |
13-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Update docstrings for SBModeule/SBTarget::FindGlobalVariables(). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135019 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BTarget.h
|
c22fb5ea4657d8c7c20a87de75cd57acaf32ec8a |
11-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add missing docstring for 'bool stop_at_endtry'. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134924 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
33b4be1d7ca14b25d0d57b5a2032971294980996 |
09-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
o TestEvents.py: Add a usage example of SBEvent APIs. o SBEvent.h and SBListener.h: Add method docstrings for SBEvent.h and SBListener.h, and example usage of SBEvent into the class docstring of SBEvent. o lldb.swig: Add typemap for SBEvent::SBEvent (uint32_t event, const char *cstr, uint32_t cstr_len) so that we can use, in Python, obj2 = lldb.SBEvent(0, "abc") to create an SBEvent. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134766 91177308-0d34-0410-b5e6-96231b3b80d8
BEvent.h
BListener.h
|
9a0688f7aee3f75cf1a66641cb2984af6577f3a9 |
08-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
The Python API does not need SBEvent::BroadcasterMatchesPtr() when SBEvent::BroadcasterMatchesRef() suffices. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134659 91177308-0d34-0410-b5e6-96231b3b80d8
BEvent.h
|
7a289bbe83d4d815637110b6e2f5470b4dc8ab01 |
08-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add docstrings for SBSymbolContextList with example usage. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134652 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbol.h
BSymbolContextList.h
|
968958c31c42224cfd5eb4ba0cf6fe0157ab375c |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add SBValue::GetID() member method call API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134636 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
edeaef152b894b3bb50490882bc1ff6967be4a75 |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add docstrings for SBValueList with example usage. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134632 91177308-0d34-0410-b5e6-96231b3b80d8
BValueList.h
|
b7237a61a08f4f565f76aebf9bdfcc9d5178be62 |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Fix wording in docstring. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134623 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
f0086c8bbbdcab57c0d3c592d00bd38dadcf929f |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add class docstrings with example usage for SBBreakpoint and SBBreakpointLocation. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134571 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BBreakpointLocation.h
BFunction.h
BThread.h
|
1626335c2b18cb0c41619b616f9889f49b9f7b0e |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add class docstrings with example usage for SBFunction and SBAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134560 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BFunction.h
|
87ffc77824a7ee9f06dba86cfa60e7b75735a6e5 |
07-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
SWIG doesn't need two methods of the same name 'GetDescription' but differ in the presence of 'const'. Ifndef the non-const one out. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134553 91177308-0d34-0410-b5e6-96231b3b80d8
BEvent.h
|
54b4bcd0993226eedd6678d9bd17bfb819366eac |
06-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add docstrings for the primordial object -- SBDebugger. The swig "autodoc" feature to remove '*' from 'char *' will be handled by doing post-processing on the lldb.py module. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134524 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
bafc86e11a23ad23112f67a99e42aac7b0f207d7 |
06-Jul-2011 |
Greg Clayton <gclayton@apple.com> |
Made the string representation for a SBValue return what "frame variable" would return instead of a less than helpful "name: '%s'" description. Make sure that when we ask for the error from a ValueObject object we first update the value if needed. Cleaned up some SB functions to use internal functions and not re-call through the public API when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134497 91177308-0d34-0410-b5e6-96231b3b80d8
BError.h
|
2ded5ed80f3f4c794a2323b68a5da11fad61b6f2 |
06-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add a more verbose docstring for SBThread.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134452 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
da91397c600ae1a2d078cca786ebed37571d0d18 |
06-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add swig docstrings for SBBlock.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134451 91177308-0d34-0410-b5e6-96231b3b80d8
BBlock.h
|
cbb52a64ea9775af1fcca2e929d0d0b4aa698de4 |
06-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add swig docstrings for SBModule.h, plus ifndef the SBModule::GetUUIDBytes() API out if swig. Fix typos in the comment for Module.h. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134446 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
faf7f05749ea6e4011295cfd6947ea194e81d797 |
05-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add a more verbose docstring to the SBSymbolContext API class. Add doxygen/docstring to SBProcess.RemoteAttachToProcessWithID() API method. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134437 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
BSymbolContext.h
|
f451e30ad3a1867065fb19e1601048a417f88f9f |
03-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add swig docstrings for SBFrame.h. Add post-processing step to remove the trailing blank lines from the docstrings of lldb.py. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134360 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
3440a5fb4a5583f2de5aa8005e69f50fdec70d6a |
02-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Furnish some docstrings to be swigified into the generated lldb.py module. Especially SBProcess.ReadMemory() and SBProcess.WriteMemory() because the generated autodoc strings make no sense for Python programmers due to typemap (see lldb.swig). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134301 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
e43cdedc77133ff4d0a0c6a39f515d0f7584891c |
02-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
SWIG doesn't need two methods of the same name 'GetDescription' but differ in the presence of 'const'. Ifndef the non-const one out. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134284 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
09e0a42211591a7ee4de26cdb80350568eab40ec |
02-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add some documentation blocks to SBTarget.h and use swig docstring feature to take advantage of them. Update modify-python-lldb.py to remove some 'residues' resulting from swigification. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134269 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
a0d0a7cbd773ded4ced8d5065f993b6e0feb8dfe |
01-Jul-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add docstrings for some API classes and auto-generates docstrings for the methods of them. A few of the auto-generated method docstrings don't look right, and may need to be fixed by either overwriting the auto-gened docstrings or some post-processing steps. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134246 91177308-0d34-0410-b5e6-96231b3b80d8
BBlock.h
BCompileUnit.h
BFrame.h
BFunction.h
BLineEntry.h
BModule.h
BProcess.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BValue.h
|
10b4ab1a248389b479ad7a2234503629368b15af |
30-Jun-2011 |
Johnny Chen <johnny.chen@apple.com> |
Ifdef out the 'lldb::Encoding GetEncoding(uint32_t &count)' API from Python SWIG, since it cannot hanlde the (uint32_t &count) parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134176 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
917c000e77fcf657099f59085d6436d179a39ea4 |
30-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added support for finding and global variables in the SBTarget and SBModule level in the public API. Also modified the ValueObject values to be able to display global variables without having a valid running process. The globals will read themselves from the object file section data if there is no process, and from the process if there is one. Also fixed an issue where modifications for dynamic types could cause child values of ValueObjects to not show up if the value was unable to evaluate itself (children of NULL pointer objects). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134102 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BModule.h
BTarget.h
BValueList.h
|
446ccaa81e42b089b6245a950cb4fca05cce12dd |
29-Jun-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add fuzz calls to SBType, SBValue, and SBValueList. Fixed crashes for SBValue fuzz calls. And change 'bool SBType::IsPointerType(void)' to 'bool SBType::IsAPointerType(void)' to avoid name collision with the static 'bool SBType::IsPointerType(void *)' function, which SWIG cannot handle. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134096 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
4ed315fdc503cfdc18e89b1eb43bf87e07fd1673 |
21-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to find functions from either a SBModule (find functions only in a specific module), or in a SBTarget (all modules for a target). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133498 91177308-0d34-0410-b5e6-96231b3b80d8
BDefines.h
BModule.h
BSymbolContextList.h
BTarget.h
|
d2554b5b7d4531b44bfbbea00cccc5fd274ef76b |
21-Jun-2011 |
Johnny Chen <johnny.chen@apple.com> |
Test lldb Python API object's default constructor and make sure it is invalid after initial construction. There are two exceptions to the above general rules, though; the API objects are SBCommadnReturnObject and SBStream. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133475 91177308-0d34-0410-b5e6-96231b3b80d8
BCommunication.h
BInstructionList.h
|
582ed0ed40a4f4135368dc4d2aff44f22f04b701 |
18-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added two new API functions to SBFrame: const char * SBFrame::GetFunctionName(); bool SBFrame::IsInlined(); The first one will return the correct name for a frame. The name of a frame is: - the name of the inlined function (if there is one) - the name of the concrete function (if there is one) - the name of the symbol (if there is one) - NULL We also can now easily check if a frame is an inline function or not. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133357 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
604f0d336f0d9390a0405022ef660ae922ef29bf |
17-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Added the notion of an system root for SDKs. This is a directory where all libraries and headers exist. This can be specified using the platform select function: platform select --sysroot /Volumes/remote-root remote-macosx Each platform subclass is free to interpret the sysroot as needed. Expose the new SDK root directory through the SBDebugger class. Fixed an issue with the GDB remote protocol where unimplemented packets were not being handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133231 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
63afdb07641f04aa7b60d895120b056124d3469b |
17-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Improved the packet throughput when debugging with GDB remote by over 3x on darwin (not sure about other platforms). Modified the communication and connection classes to not require the BytesAvailable function. Now the "Read(...)" function has a timeout in microseconds. Fixed a lot of assertions that were firing off in certain cases and replaced them with error output and code that can deal with the assertion case. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133224 91177308-0d34-0410-b5e6-96231b3b80d8
BCommunication.h
|
409646d247dc8a1efe4f199a1b251516ffc62f60 |
15-Jun-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add an API to SBDebugger class: bool SBDebugger::DeleteTarget(lldb::SBTarget &target); which is used in the test tearDown() phase to cleanup the debugger's target list so that it won't grow larger and larger as test cases are executed. This is also a good opportunity to get rid of the arcane requirement that test cases exercising the Python API must assign the process object to self.process so that it gets shutdown gracefully. Instead, the shutdown of the process associated with each target is now being now automatically. Also get rid of an API from SBTarget class: SBTarget::DeleteTargetFromList(lldb_private::TargetList *list); git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@133091 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BTarget.h
|
421ca5014ea0e163998b9a8e0d777d3adb5c872e |
29-May-2011 |
Greg Clayton <gclayton@apple.com> |
Don't have the debugger default to ignoring EOF. This is only what the driver (or anything running in a terminal) wants. Not what a UI (Xcode) would want where it creates a debugger per debug window. The current code had an infinite loop after a debug session ended. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132280 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
b38df1e945846a5d956974ec157902a6ad748868 |
10-May-2011 |
Caroline Tice <ctice@apple.com> |
Make sure writing asynchronous output only backs up & overwrites prompt if the IOChannel input reader is the top input reader. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131110 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
10de7d1db3ec782ea2ccda1f39c0a40b9c301594 |
04-May-2011 |
Jim Ingham <jingham@apple.com> |
Change "frame var" over to using OptionGroups (and thus the OptionGroupVariableObjectDisplay). Change the boolean "use_dynamic" over to a tri-state, no-dynamic, dynamic-w/o running target, and dynamic with running target. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130832 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BValue.h
|
4a348081030cdd2af758fddc869518357d9befd3 |
02-May-2011 |
Caroline Tice <ctice@apple.com> |
This patch captures and serializes all output being written by the command line driver, including the lldb prompt being output by editline, the asynchronous process output & error messages, and asynchronous messages written by target stop-hooks. As part of this it introduces a new Stream class, StreamAsynchronousIO. A StreamAsynchronousIO object is created with a broadcaster, who will eventually broadcast the stream's data for a listener to handle, and an event type indicating what type of event the broadcaster will broadcast. When the Write method is called on a StreamAsynchronousIO object, the data is appended to an internal string. When the Flush method is called on a StreamAsynchronousIO object, it broadcasts it's data string and clears the string. Anything in lldb-core that needs to generate asynchronous output for the end-user should use the StreamAsynchronousIO objects. I have also added a new notification type for InputReaders, to let them know that a asynchronous output has been written. This is to allow the input readers to, for example, refresh their prompts and lines, if desired. I added the case statements to all the input readers to catch this notification, but I haven't added any code for handling them yet (except to the IOChannel input reader). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130721 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
BDebugger.h
|
180546b3feb8c7bcca70a56776a7c4fad99ba09c |
30-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to set the Platform path for a module through the SBModule interface. Added a quick way to set the platform though the SBDebugger interface. I will actually an a SBPlatform support soon, but for now this will do. ConnectionFileDescriptor can be passed a url formatted as: "fd://<fd>" where <fd> is a file descriptor in the current process. This is handy if you have services, deamons, or other tools that can spawn processes and give you a file handle. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130565 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BModule.h
|
888a7334344778d1a4edbd58b5852ae4d53ffed9 |
26-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Changed the emulate instruction function to take emulate options which are defined as enumerations. Current bits include: eEmulateInstructionOptionAutoAdvancePC eEmulateInstructionOptionIgnoreConditions Modified the EmulateInstruction class to have a few more pure virtuals that can help clients understand how many instructions the emulator can handle: virtual bool SupportsEmulatingIntructionsOfType (InstructionType inst_type) = 0; Where instruction types are defined as: //------------------------------------------------------------------ /// Instruction types //------------------------------------------------------------------ typedef enum InstructionType { eInstructionTypeAny, // Support for any instructions at all (at least one) eInstructionTypePrologueEpilogue, // All prologue and epilogue instructons that push and pop register values and modify sp/fp eInstructionTypePCModifying, // Any instruction that modifies the program counter/instruction pointer eInstructionTypeAll // All instructions of any kind } InstructionType; This allows use to tell what an emulator can do and also allows us to request these abilities when we are finding the plug-in interface. Added the ability for an EmulateInstruction class to get the register names for any registers that are part of the emulation. This helps with being able to dump and log effectively. The UnwindAssembly class now stores the architecture it was created with in case it is needed later in the unwinding process. Added a function that can tell us DWARF register names for ARM that goes along with the source/Utility/ARM_DWARF_Registers.h file: source/Utility/ARM_DWARF_Registers.c Took some of plug-ins out of the lldb_private namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130189 91177308-0d34-0410-b5e6-96231b3b80d8
BInstruction.h
|
bdc36bd05d156143d9f2e568a1aa1b5253bbe1f1 |
25-Apr-2011 |
Johnny Chen <johnny.chen@apple.com> |
Make SBBreakpointLocation::GetDescription() API to be consistent with SBTarget, 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130147 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
|
6b8d3b5e7f0507aca2ee1c0937d7ec80fa2a9c5b |
20-Apr-2011 |
Caroline Tice <ctice@apple.com> |
Add the infrastructure to test instruction emulations automatically. The idea is that the instruction to be emulated is actually executed on the hardware to be emulated, with the before and after state of the hardware being captured and 'freeze-dried' into .dat files. The emulation testing code then loads the before & after state from the .dat file, emulates the instruction using the before state, and compares the resulting state to the 'after' state. If they match, the emulation is accurate, otherwise there is a problem. The final format of the .dat files needs a bit more work; the plan is to generalize them a bit and to convert the plain values to key-value pairs. But I wanted to get this first pass committed. This commit adds arm instruction emulation testing to the testsuite, along with many initial .dat files. It also fixes a bug in the llvm disassembler, where 32-bit thumb opcodes were getting their upper & lower 16-bits reversed. There is a new Instruction sub-class, that is intended to be loaded from a .dat file rather than read from an executable. There is also a new EmulationStateARM class, for handling the before & after states. EmulationStates for other architetures can be added later when we emulate their instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129832 91177308-0d34-0410-b5e6-96231b3b80d8
BInstruction.h
|
e41494a9092e15192012a5e0a8a1ffd66c70b8bb |
16-Apr-2011 |
Jim Ingham <jingham@apple.com> |
Add support for "dynamic values" for C++ classes. This currently only works for "frame var" and for the expressions that are simple enough to get passed to the "frame var" underpinnings. The parser code will have to be changed to also query for the dynamic types & offsets as it is looking up variables. The behavior of "frame var" is controlled in two ways. You can pass "-d {true/false} to the frame var command to get the dynamic or static value of the variables you are printing. There's also a general setting: target.prefer-dynamic-value (boolean) = 'true' which is consulted if you call "frame var" without supplying a value for the -d option. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129623 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BValue.h
|
0fe5a535b87841a5c422f4a79d55c21bf07b50ca |
09-Apr-2011 |
Caroline Tice <ctice@apple.com> |
Fix various things in the instruction emulation code: - Add ability to control whether or not the emulator advances the PC register (in the emulation state), if the instruction itself does not change the pc value.. - Fix a few typos in asm description strings. - Fix bug in the carry flag calculation. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129168 91177308-0d34-0410-b5e6-96231b3b80d8
BInstruction.h
|
af59180d46b42665dba3ea581fc501bb9fcb1fb7 |
06-Apr-2011 |
Caroline Tice <ctice@apple.com> |
Add Emulate and DumpEmulation to Instruction class. Move InstructionLLVM out of DisassemblerLLVM class. Add instruction emulation function calls to SBInstruction and SBInstructionList APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128956 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
BInstruction.h
BInstructionList.h
|
919ee60577297be31eb69f14a5901e7c6170a9ca |
01-Apr-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add TestSymbolAPI.py to test the newly added SBSymbol and SBAddress APIs: lldb::SymbolType SBSymbol::GetType(); lldb::SectionType SBAddress::GetSectionType (); lldb::SBModule SBAddress::GetModule (); Also add an lldb::SBModule::GetUUIDString() API which is easier for Python to work with in the test script. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128695 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
b0e68d996b28cf81a28aeceefd69f7ed8d4aba99 |
31-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Added some functions to our API related to classifying symbols as code, data, const data, etc, and also for SBAddress objects to classify their type of section they are in and also getting the module for a section offset address. lldb::SymbolType SBSymbol::GetType(); lldb::SectionType SBAddress::GetSectionType (); lldb::SBModule SBAddress::GetModule (); git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128602 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BModule.h
BSymbol.h
|
fa3a16a2ea380ef38388ebe323817bd1b32c20cd |
31-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Convert ValueObject to explicitly maintain the Execution Context in which they were created, and then use that when they update themselves. That means all the ValueObject evaluate me type functions that used to require a Frame object now do not. I didn't remove the SBValue API's that take this now useless frame, but I added ones that don't require the frame, and marked the SBFrame taking ones as deprecated. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128593 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
b5871fe4d11a06d5f468a607059a361cbdc25e1d |
31-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Add a LaunchSimple API that is nicer to use for quick scripts. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128588 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
e86cbb9ef128db87cf904e330b2edfc15566bacd |
22-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Abtracted the innards of lldb-core away from the SB interface. There was some 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. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128053 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
BCommandInterpreter.h
BFrame.h
|
3809340ce8954dbeaf24907ece29cd6b179143ea |
04-Mar-2011 |
James McIlree <jmcilree@apple.com> |
Expose ConnectRemote API through SBTarget and SBProcess. Patch verified by Greg Clayton prior to checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126974 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
BTarget.h
|
89f1aa732c8b1df90cbbfe116b6f06cf80a25ae3 |
03-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Export the ability to get the start and end addresses for functions and symbols, and also allow clients to get the prologue size in bytes: SBAddress SBFunction::GetStartAddress (); SBAddress SBFunction::GetEndAddress (); uint32_t SBFunction::GetPrologueByteSize (); SBAddress SBSymbol::GetStartAddress (); SBAddress SBSymbol::GetEndAddress (); uint32_t SBSymbol::GetPrologueByteSize (); git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126892 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BFunction.h
BSymbol.h
|
afb8186acfef6132174ca02d357fafd36b599ca3 |
02-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Added a missing API call in SBTarget that enables one to get anything in a SBSymbolContext filled in given an SBAddress: SBSymbolContext SBTarget::ResolveSymbolContextForAddress (const SBAddress& addr, uint32_t resolve_scope); Also did a little cleanup on the ProcessGDBRemote stdio file handle code. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126885 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbolContext.h
BTarget.h
|
60a544f23362d4f2fbe1e68b9c5340aa5e11302c |
01-Mar-2011 |
Johnny Chen <johnny.chen@apple.com> |
Add an API SBProcess::GetByteOrder() and add test cases which utilizes GetByteOrder(), among other SBProcess APIs, to write (int)256 into a memory location of a global variable (int)my_int and reads/checks the variable afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126792 91177308-0d34-0410-b5e6-96231b3b80d8
BProcess.h
|
aa378b1f53f8b557ceab403e31e6c9ef9a20b77d |
20-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Don't limit StreamTee to just two streams. It now can contain N streams by making the stream a vector of stream shared pointers that is protected by a mutex. Streams can be get/set by index which allows indexes to be defined as stream indentifiers. If a stream is set at index 3 and there are now streams in the collection, then empty stream objects are inserted to ensure that stream at index 3 has a valid stream. There is also an append method that allows a stream to be pushed onto the stack. This will allow our streams to be very flexible in where the output goes. Modified the CommandReturnObject to use the new StreamTee functionality. This class now defines two StreamTee indexes: 0 for the stream string stream, and 1 for the immediate stream. This is used both on the output and error streams. Added the ability to get argument types as strings or as descriptions. This is exported through the SBCommandInterpreter API to allow external access. Modified the Driver class to use the newly exported argument names from SBCommandInterpreter::GetArgumentTypeAsCString(). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126067 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
|
2e8cb8a7342a2ea672792067d712a794e215a3a7 |
19-Feb-2011 |
Jim Ingham <jingham@apple.com> |
- Changed all the places where CommandObjectReturn was exporting a StreamString to just exporting a Stream, and then added GetOutputData & GetErrorData to get the accumulated data. - Added a StreamTee that will tee output to two provided lldb::StreamSP's. - Made the CommandObjectReturn use this so you can Tee the results immediately to the debuggers output file, as well as saving up the results to return when the command is done executing. - HandleCommands now uses this so that if you have a set of commands that continue the target you will see the commands come out as they are processed. - The Driver now uses this to output the command results as you go, which makes the interface more reactive seeming. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126015 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BStream.h
|
17f5afe9ed10bda3efbce0f26cf0c030331f8b15 |
05-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Header patch, virtual dtor patch and missed UUID patch from Kirk Beitz. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124931 91177308-0d34-0410-b5e6-96231b3b80d8
BInputReader.h
|
271a5db096ae183e9235ebd273c4a6aab6130b3e |
03-Feb-2011 |
Greg Clayton <gclayton@apple.com> |
Added a SBListener parameter to Launch and attach calls to avoid a race condition that could occur when launching or attaching. What could happen is you would launch/attach to a process, then you would need to tell a listener to watch for process state changed events. In this case, if you waited too long to listen for events, you could miss the initial stop event, requiring clients to listen, then check the process state. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124818 91177308-0d34-0410-b5e6-96231b3b80d8
BListener.h
BTarget.h
|
5ec14f83253f65f51cc0aff15ac34c0f32750e5e |
23-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Deprecated old forms of SBTarget::Launch. There is not just one and no SWIG renaming done to work around deprecated APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124075 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
1fcdb8234a1b19c84c1b409d073c5c7864710f9a |
23-Jan-2011 |
Johnny Chen <johnny.chen@apple.com> |
Let's teach SWIG to rename the overloaded SBTarget::Launch() function which has provision for specifying a working directory with the name LaunchWithCWD in our target language (Python) for now. This fixes the test suite failures due to the overloading. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124069 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
879bfee0ce2ddaaa50d41042002d5e38c938aed4 |
23-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Restored some missing APIs for the test suite. Now testsuite still has some failures due to overloaded SBTarget::Launch() calls. Bumping Xcode project versions: lldb-42 and debugserver-127. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124063 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
de915beb5febe597505ba33fdc2c39eea2abdbd4 |
23-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Added a new variant of SBTarget::Launch() that deprectates the old one that takes separate file handles for stdin, stdout, and stder and also allows for the working directory to be specified. Added support to "process launch" to a new option: --working-dir=PATH. We can now set the working directory. If this is not set, it defaults to that of the process that has LLDB loaded. Added the working directory to the host LaunchInNewTerminal function to allows the current working directory to be set in processes that are spawned in their own terminal. Also hooked this up to the lldb_private::Process and all mac plug-ins. The linux plug-in had its API changed, but nothing is making use of it yet. Modfied "debugserver" and "darwin-debug" to also handle the current working directory options and modified the code in LLDB that spawns these tools to pass the info along. Fixed ProcessGDBRemote to properly pass along all file handles for stdin, stdout and stderr. After clearing the default values for the stdin/out/err file handles for process to be NULL, we had a crasher in UserSettingsController::UpdateStringVariable which is now fixed. Also fixed the setting of boolean values to be able to be set as "true", "yes", "on", "1" for true (case insensitive) and "false", "no", "off", or "0" for false. Fixed debugserver to properly handle files for STDIN, STDOUT and STDERR that are not already opened. Previous to this fix debugserver would only correctly open and dupe file handles for the slave side of a pseudo terminal. It now correctly handles getting STDIN for the inferior from a file, and spitting STDOUT and STDERR out to files. Also made sure the file handles were correctly opened with the NOCTTY flag for terminals. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124060 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
c4ed12f9db1a526401f29a4cef17d78fa5e3da26 |
22-Jan-2011 |
Caroline Tice <ctice@apple.com> |
Add API and implementation for SBDebugger::Destroy and Debugger::Destroy. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124011 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
1ebdcc7789aac1ef30ad6dcd485dff86c63136ad |
21-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Added support for stepping out of a frame. If you have 10 stack frames, and you select frame #3, you can then do a step out and be able to go directly to the frame above frame #3! Added StepOverUntil and StepOutOfFrame to the SBThread API to allow more powerful stepping. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123970 91177308-0d34-0410-b5e6-96231b3b80d8
BError.h
BFrame.h
BThread.h
|
00c3ae7dac4cf9654d1569735c41e58fb2fd8969 |
21-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed up the SBValue::GetExpressionPath() to be more correct under more circumstances. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123957 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
b01000fd063629facd45044f137446fb748ee179 |
17-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
A few of the issue I have been trying to track down and fix have been due to the way LLDB lazily gets complete definitions for types within the debug info. When we run across a class/struct/union definition in the DWARF, we will only parse the full definition if we need to. This works fine for top level types that are assigned directly to variables and arguments, but when we have a variable with a class, lets say "A" for this example, that has a member: "B *m_b". Initially we don't need to hunt down a definition for this class unless we are ever asked to do something with it ("expr m_b->getDecl()" for example). With my previous approach to lazy type completion, we would be able to take a "A *a" and get a complete type for it, but we wouldn't be able to then do an "a->m_b->getDecl()" unless we always expanded all types within a class prior to handing out the type. Expanding everything is very costly and it would be great if there were a better way. A few months ago I worked with the llvm/clang folks to have the ExternalASTSource class be able to complete classes if there weren't completed yet: class ExternalASTSource { .... virtual void CompleteType (clang::TagDecl *Tag); virtual void CompleteType (clang::ObjCInterfaceDecl *Class); }; This was great, because we can now have the class that is producing the AST (SymbolFileDWARF and SymbolFileDWARFDebugMap) sign up as external AST sources and the object that creates the forward declaration types can now also complete them anywhere within the clang type system. This patch makes a few major changes: - lldb_private::Module classes now own the AST context. Previously the TypeList objects did. - The DWARF parsers now sign up as an external AST sources so they can complete types. - All of the pure clang type system wrapper code we have in LLDB (ClangASTContext, ClangASTType, and more) can now be iterating through children of any type, and if a class/union/struct type (clang::RecordType or ObjC interface) is found that is incomplete, we can ask the AST to get the definition. - The SymbolFileDWARFDebugMap class now will create and use a single AST that all child SymbolFileDWARF classes will share (much like what happens when we have a complete linked DWARF for an executable). We will need to modify some of the ClangUserExpression code to take more advantage of this completion ability in the near future. Meanwhile we should be better off now that we can be accessing any children of variables through pointers and always be able to resolve the clang type if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123613 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
123db408a6bc06614ec893040aaad84d8d0d16f9 |
12-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Added the following functions to SBThread to allow threads to be suspended when a process is resumed: bool SBThread::Suspend(); bool SBThread::Resume(); bool SBThread::IsSuspended(); git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123300 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
e179a5840a49167964ca768a13c252c58c9cffcc |
05-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get an set the desired format for SBValue objects. Fixed the display of complex numbers in lldb_private::DataExtractor::Dump(...) and also fixed other edge display cases in lldb_private::ClangASTType::DumpTypeValue(...). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122895 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
bdcda468276dc9ab6bf648fc8cc07f3faad91526 |
20-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
The LLDB API (lldb::SB*) is now thread safe! git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122262 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BProcess.h
BTarget.h
BValue.h
|
ca66a5f50969b4833cea57c441b23fa29c714a55 |
18-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Linux patches from Stephen Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122127 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandReturnObject.h
BStream.h
|
c5157ecb9c6185b92923fab50de53f3fad86095d |
17-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Added access to set the current stack frame within a thread so any command line commands can use the current thread/frame. Fixed an issue with expressions that get sandboxed in an objective C method where unichar wasn't being passed down. Added a "static size_t Scalar::GetMaxByteSize();" function in case we need to know the max supported by size of something within a Scalar object. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122027 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
4e9267d43979b391cb4c311b378fa9991c63285b |
14-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Changed: SBValue SBFrame::LookupVar(const char *name); To SBValue SBFrame::FindVariable (const char *name); Changed: SBValue LookupVarInScope (const char *name, const char *scope); to SBValue FindValue (const char *name, ValueType value_type); The latter makes it possible to not only find variables (params, locals, globals, and statics), but we can also now get register sets, registers and persistent variables using the frame as the context. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121777 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
dd62d729cf960051615a74c1e67e2e41ec789fd7 |
14-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed SBFrame to properly check to make sure it has a valid m_opaque_sp object before trying to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121748 91177308-0d34-0410-b5e6-96231b3b80d8
BBlock.h
BCompileUnit.h
BFunction.h
BSymbol.h
|
ea49cc78c01f34f874b7e710acebea4ead404be1 |
12-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Added the ability for SBTarget to resolve load addresses (convert lldb::addr_t values into resolved SBAddress objects). These SBAddress objects can then be used to resolve a symbol context using "lldb::SBSymbolContext ResolveSymbolContextForAddress (const lldb::SBAddress& addr, uint32_t resolve_scope);". git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121638 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBreakpoint.h
BTarget.h
|
e5791dd89688683c9e1ec874b0be6906517e6827 |
11-Dec-2010 |
Johnny Chen <johnny.chen@apple.com> |
Add test_display_source_python() test case to TestSourceManager.py which uses the lldb PyThon API SBSourceManager to display source files. To accomodate this, the C++ SBSourceManager API has been changed to take an lldb::SBStream as the destination for display of source lines. Modify SBStream::ctor() so that its opaque pointer is initialized with an StreamString instance. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121605 91177308-0d34-0410-b5e6-96231b3b80d8
BSourceManager.h
BStream.h
|
67283641ef749fadab1884e81520e7e5ab42e91a |
07-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Forgot to qualify SBSymbol with the lldb namespace for SWIG. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121115 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
|
43edca38dda703786e2dc7ad61169b5b445551e6 |
07-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Added symbol table access through the module for now. We might need to expose a SBSymtab class, but for now, we expose the symbols through the module. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121112 91177308-0d34-0410-b5e6-96231b3b80d8
BModule.h
BSymbol.h
|
422b1ae11aaec0bea88d3d2d1f4cdb0147cef0ae |
06-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Added a less than operator that will compare the internal opaque pointer values so SBBroadcaster objects can be contained in ordered containers or sorted. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120967 91177308-0d34-0410-b5e6-96231b3b80d8
BBroadcaster.h
|
3ca95dac942597ca76101f6792f16e34e81dea1d |
05-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
Added "void SBBroadcaster::Clear ();" method to SBBroadcaster. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120949 91177308-0d34-0410-b5e6-96231b3b80d8
BBroadcaster.h
|
eecb0f3b5021e37311f9588f14bcab38a35b8e9a |
04-Dec-2010 |
Greg Clayton <gclayton@apple.com> |
More reverting of the EOF stuff as the API was changed which we don't want to do. Closing on EOF is an option that can be set on the lldb_private::Communication or the lldb::SBCommunication objects after they are created. Of course the EOF support isn't hooked up, so they don't do anything at the moment, but they are left in so when the code is fixed, it will be easy to get working again. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120885 91177308-0d34-0410-b5e6-96231b3b80d8
BCommunication.h
|
9ac497bc11512d221b3962e4f883eeac07db188a |
02-Dec-2010 |
Caroline Tice <ctice@apple.com> |
Add proper EOF handling to Communication & Connection classes: Add bool member to Communication class indicating whether the Connection should be closed on receiving an EOF or not. Update the Connection read to return an EOF status when appropriate. Modify the Communication class to pass the EOF along or not, and to close the Connection or not, as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120723 91177308-0d34-0410-b5e6-96231b3b80d8
BCommunication.h
|
c4f55fee15b66ea53da092ca50400ac5d8b0692d |
19-Nov-2010 |
Caroline Tice <ctice@apple.com> |
Add the ability to catch and do the right thing with Interrupts (often control-c) and end-of-file (often control-d). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119837 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
640dc6b983964615bcb149d7d37ee007a13fb02c |
18-Nov-2010 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get more information on the SBThread's stop reason by being able to get the data count and data. Each thread stop reason has one or more data words that can help describe the stop. To do this I added: size_t SBThread::GetStopReasonDataCount(); uint64_t SBThread::GetStopReasonDataAtIndex(uint32_t idx); git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119720 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
20d338fad87eba91de65aa9bec76e01c04472848 |
18-Nov-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed Process::Halt() as it was broken for "process halt" after recent changes to the DoHalt down in ProcessGDBRemote. I also moved the functionality that was in ProcessGDBRemote::DoHalt up into Process::Halt so not every class has to implement a tricky halt/resume on the internal state thread. The functionality is the same as it was before with two changes: - when we eat the event we now just reuse the event we consume when the private state thread is paused and set the interrupted bool on the event if needed - we also properly update the Process::m_public_state with the state of the event we consume. Prior to this, if you issued a "process halt" it would eat the event, not update the process state, and then produce a new event with the interrupted bit set and send it. Anyone listening to the event would get the stopped event with a process that whose state was set to "running". Fixed debugserver to not have to be spawned with the architecture of the inferior process. This worked fine for launching processes, but when attaching to processes by name or pid without a file in lldb, it would fail. Now debugserver can support multiple architectures for a native debug session on the current host. This currently means i386 and x86_64 are supported in the same binary and a x86_64 debugserver can attach to a i386 executable. This change involved a lot of changes to make sure we dynamically detect the correct registers for the inferior process. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119680 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
538eb82a89a68dbc57251915080bd5152b333978 |
06-Nov-2010 |
Greg Clayton <gclayton@apple.com> |
Added copy constructors and assignment operators to all lldb::SB* classes so we don't end up with weak exports with some compilers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118312 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BBroadcaster.h
BCommandInterpreter.h
BCommandReturnObject.h
BCommunication.h
BCompileUnit.h
BDebugger.h
BError.h
BEvent.h
BFrame.h
BFunction.h
BInputReader.h
BInstruction.h
BInstructionList.h
BListener.h
BModule.h
BProcess.h
BSourceManager.h
BStringList.h
BSymbol.h
BTarget.h
BType.h
BValue.h
|
0baa394cd55c6dfb7a6259d215d0dea2b708067b |
04-Nov-2010 |
Greg Clayton <gclayton@apple.com> |
Added support for loading and unloading shared libraries. This was done by adding support into lldb_private::Process: virtual uint32_t lldb_private::Process::LoadImage (const FileSpec &image_spec, Error &error); virtual Error lldb_private::Process::UnloadImage (uint32_t image_token); There is a default implementation that should work for both linux and MacOSX. This ability has also been exported through the SBProcess API: uint32_t lldb::SBProcess::LoadImage (lldb::SBFileSpec &image_spec, lldb::SBError &error); lldb::SBError lldb::SBProcess::UnloadImage (uint32_t image_token); Modified the DynamicLoader plug-in interface to require it to be able to tell us if it is currently possible to load/unload a shared library: virtual lldb_private::Error DynamicLoader::CanLoadImage () = 0; This way the dynamic loader plug-ins are allows to veto whether we can currently load a shared library since the dynamic loader might know if it is currenlty loading/unloading shared libraries. It might also know about the current host system and know where to check to make sure runtime or malloc locks are currently being held. Modified the expression parser to have ClangUserExpression::Evaluate() be the one that causes the dynamic checkers to be loaded instead of other code that shouldn't have to worry about it. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@118227 91177308-0d34-0410-b5e6-96231b3b80d8
BError.h
BFileSpec.h
BProcess.h
|
49ce682dfa7993d31206cea19ce7006cd3f3077e |
31-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the API logging a lot more to reduce redundant information and keep the file size a bit smaller. Exposed SBValue::GetExpressionPath() so SBValue users can get an expression path for their values. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117851 91177308-0d34-0410-b5e6-96231b3b80d8
BBroadcaster.h
BStream.h
BValue.h
|
a66ba46379fe41036d870975c56ccc2319cb6618 |
30-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Improved API logging. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117772 91177308-0d34-0410-b5e6-96231b3b80d8
BBlock.h
BFrame.h
BProcess.h
BTarget.h
BThread.h
|
3f5ee7fd6991891f0892bd71537763d9b59acd12 |
29-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Modified the lldb_private::TypeList to use a std::multimap for quicker lookup by type ID (the most common type of type lookup). Changed the API logging a bit to always show the objects in the OBJECT(POINTER) format so it will be easy to locate all instances of an object or references to it when looking at logs. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117641 91177308-0d34-0410-b5e6-96231b3b80d8
BFileSpec.h
BListener.h
|
f3d0b0c8081691128626eb496fdfcbf8ae54c1de |
27-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Updated the lldb_private::Flags class to have better method names and made all of the calls inlined in the header file for better performance. Fixed the summary for C string types (array of chars (with any combo if modifiers), and pointers to chars) work in all cases. Fixed an issue where a forward declaration to a clang type could cause itself to resolve itself more than once if, during the resolving of the type itself it caused something to try and resolve itself again. We now remove the clang type from the forward declaration map in the DWARF parser when we start to resolve it and avoid this additional call. This should stop any duplicate members from appearing and throwing all the alignment of structs, unions and classes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117437 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
61ba7ec20f616f907473dd501341cef5b47fa3f8 |
27-Oct-2010 |
Caroline Tice <ctice@apple.com> |
Clean up the API logging code: - Try to reduce logging to one line per function call instead of tw - Put all arguments & their values into log for calls - Add 'this' parameter information to function call logging, making it show the appropriate internal pointer (this.obj, this.sp, this.ap...) - Clean up some return values - Remove logging of constructors that construct empty objects - Change '==>' to '=>' for showing result values... - Fix various minor bugs - Add some protected 'get' functions to help getting the internal pointers for the 'this' arguments... git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117417 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BCompileUnit.h
BFunction.h
BLineEntry.h
BSymbol.h
BValueList.h
|
7826c8894803dc729f29789ebc038956a94d3e7a |
26-Oct-2010 |
Caroline Tice <ctice@apple.com> |
First pass at adding logging capabilities for the API functions. At the moment 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). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117349 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
BError.h
BEvent.h
BFileSpec.h
BTarget.h
BThread.h
|
e3740831203337f606008b7c8d7ea34b521c8600 |
22-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Add and SB API to set breakpoint conditions. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117082 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BBreakpointLocation.h
|
537a7a86687683fd403ce652d178fbc89e06ef9f |
20-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed an issue where we were resolving paths when we should have been. So the issue here was that we have lldb_private::FileSpec that by default was always resolving a path when using the: FileSpec::FileSpec (const char *path); and in the: void FileSpec::SetFile(const char *pathname, bool resolve = true); This isn't what we want in many many cases. One example is you have "/tmp" on your file system which is really "/private/tmp". You compile code in that directory and end up with debug info that mentions "/tmp/file.c". Then you type: (lldb) breakpoint set --file file.c --line 5 If your current working directory is "/tmp", then "file.c" would be turned into "/private/tmp/file.c" which won't match anything in the debug info. Also, it should have been just a FileSpec with no directory and a filename of "file.c" which could (and should) potentially match any instances of "file.c" in the debug info. So I removed the constructor that just takes a path: FileSpec::FileSpec (const char *path); // REMOVED You must now use the other constructor that has a "bool resolve" parameter that you must always supply: FileSpec::FileSpec (const char *path, bool resolve); I also removed the default parameter to SetFile(): void FileSpec::SetFile(const char *pathname, bool resolve); And fixed all of the code to use the right settings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116944 91177308-0d34-0410-b5e6-96231b3b80d8
BFileSpec.h
|
bf8e42b9da0e1c6349a727d644ad37610b00d556 |
15-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed an expression parsing issue where if you were stopped somewhere without debug information and you evaluated an expression, a crash would occur as a result of an unchecked pointer. Added the ability to get the expression path for a ValueObject. For a rectangle point child "x" the expression path would be something like: "rect.top_left.x". This will allow GUI and command lines to get ahold of the expression path for a value object without having to explicitly know about the hierarchy. This means the ValueObject base class now has a "ValueObject *m_parent;" member. All ValueObject subclasses now correctly track their lineage and are able to provide value expression paths as well. Added a new "--flat" option to the "frame variable" to allow for flat variable output. An example of the current and new outputs: (lldb) frame variable argc = 1 argv = 0x00007fff5fbffe80 pt = { x = 2 y = 3 } rect = { bottom_left = { x = 1 y = 2 } top_right = { x = 3 y = 4 } } (lldb) frame variable --flat argc = 1 argv = 0x00007fff5fbffe80 pt.x = 2 pt.y = 3 rect.bottom_left.x = 1 rect.bottom_left.y = 2 rect.top_right.x = 3 rect.top_right.y = 4 As you can see when there is a lot of hierarchy it can help flatten things out. Also if you want to use a member in an expression, you can copy the text from the "--flat" output and not have to piece it together manually. This can help when you want to use parts of the STL in expressions: (lldb) frame variable --flat argc = 1 argv = 0x00007fff5fbffea8 hello_world._M_dataplus._M_p = 0x0000000000000000 (lldb) expr hello_world._M_dataplus._M_p[0] == '\0' git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116532 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
887aa2898314218406275a34cbec30c11cd00acd |
11-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added a "--no-lldbinit" option (-n for short (which magically matches what gdb uses)) so we can tell our "lldb" driver program to not automatically parse any .lldbinit files. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116179 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
d8c625380b56759fc3fef8b9cf0389ae1a07f44d |
07-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the SWIG stuff so all includes happen as they should, no pulling tricks to get types to resolve. I did this by correctly including the correct files: stdint.h and all lldb-*.h files first before including the API files. This allowed me to remove all of the hacks that were in the lldb.swig file and it also allows all of the #defines in lldb-defines.h and enumerations in lldb-enumerations.h to appear in the lldb.py module. This will make the python script code a lot more readable. Cleaned up the "process launch" command to not execute a "process continue" command, it now just does what it should have with the internal API calls instead of executing another command line command. Made the lldb_private::Process set the state to launching and attaching if WillLaunch/WillAttach return no error respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115902 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BCommandInterpreter.h
BTarget.h
|
e47649c441e7abe1dc5158ec36bba1bb66fcbb08 |
07-Oct-2010 |
Johnny Chen <johnny.chen@apple.com> |
o SBtarget.cpp/.h: Temporarily commenting out the deprecated LaunchProcess() method. SWIG is not able to handle the overloaded functions. o dotest.py/lldbtest.py: Add an '-w' option to insert some wait time between consecutive test cases. o TestClassTypes.py: Make the breakpoint_creation_by_filespec_python() test method more robust and more descriptive by printing out a more insightful assert message. o lldb.swig: Coaches swig to treat StateType as an int type, instead of a C++ class. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115899 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63 |
07-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Expose the error contained within an SBValue. Move anything that creates a new process into SBTarget. Marked some functions as deprecated. I will remove them after our new API changes make it through a build cycle. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115854 91177308-0d34-0410-b5e6-96231b3b80d8
BError.h
BProcess.h
BTarget.h
BValue.h
|
992ce267ba735d6ec834cd0778ebb891121690a2 |
06-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Leaving in deprecated functions until we can get a clean build with the new APIs in place before removing the deprecated functions. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115815 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
1a3083a04c20cc8e7298e03b731cab5d09aa7bad |
06-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added the first of hopefully many python example scripts that show how to use the python API that is exposed through SWIG to do some cool stuff. Also fixed synchronous debugging so that all process control APIs exposed through the python API will now wait for the process to stop if you set the async mode to false (see disasm.py). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115738 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
5c4c746a3a83c1aad411c6cdc5f9525a4fc2d17e |
06-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get the disassembly instructions from the function and symbol. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115734 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BFunction.h
BInstruction.h
BInstructionList.h
BProcess.h
BStream.h
BSymbol.h
BTarget.h
|
66ed2fbeaf588fe4105a1305f7e956dcf9fbe299 |
05-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added a new ValueObject type that will be used to freeze dry expression results. The clang opaque type for the expression result will be added to the Target's ASTContext, and the bytes will be stored in a DataBuffer inside the new object. The class is named: ValueObjectConstResult Now after an expression is evaluated, we can get a ValueObjectSP back that contains a ValueObjectConstResult object. Relocated the value object dumping code into a static function within the ValueObject class instead of being in the CommandObjectFrame.cpp file which is what contained the code to dump variables ("frame variables"). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115578 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
1393da9a4df074f1b41a2725b578463e4968ab7b |
04-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Have to friend SBFrame or it can't make symbols for the frame. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115543 91177308-0d34-0410-b5e6-96231b3b80d8
BSymbol.h
|
8f1e08b43c84001dad99022799a08f4523592b8f |
04-Oct-2010 |
Greg Clayton <gclayton@apple.com> |
Added GetSymbol to the frame. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@115535 91177308-0d34-0410-b5e6-96231b3b80d8
BFrame.h
|
59c5d5dbe1b565bca389c9547377a2dd17b9e956 |
27-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Automatically wrap *all* Python code entered for a breakpoint command inside an auto-generated Python function, and pass the stoppoint context frame and breakpoint location as parameters to the function (named 'frame' and 'bp_loc'), to be used inside the breakpoint command Python code, if desired. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114849 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpointLocation.h
BFrame.h
|
e49ec18f1868168c8927ae30a379db176ca8cce3 |
23-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Remove all the __repr__ methods from the API/*.h files, and put them into python-extensions.swig, which gets included into lldb.swig, and adds them back into the classes when swig generates it's C++ file. This keeps the Python stuff out of the general API classes. Also fixed a small bug in the copy constructor for SBSymbolContext. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114602 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BCommandReturnObject.h
BCompileUnit.h
BDebugger.h
BDefines.h
BError.h
BEvent.h
BFileSpec.h
BFrame.h
BFunction.h
BInstruction.h
BLineEntry.h
BModule.h
BProcess.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BType.h
BValue.h
|
1ca48b0529de3d8efc05037649fe178e90e36bb7 |
22-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Remove SBCommandContext which was not needed or doing anything. Add SBValueList.h & SBStream.h to build-swig-Python.sh; add SBValueList.h to lldb.swig git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114549 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandContext.h
|
5bc8c97d62b2e399bd90fb7e00c903d7887412ab |
20-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Add UserSettings to Target class, making Target settings the parent of Process settings; add 'default-arch' as a class-wide setting for Target. Replace lldb::GetDefaultArchitecture with Target::GetDefaultArchitecture & Target::SetDefaultArchitecture. Add 'use-external-editor' as user setting to Debugger class & update code appropriately. Add Error parameter to methods that get user settings, for easier reporting of bad requests. Fix various other minor related bugs. Fix test cases to work with new changes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114352 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
98f930f429160f9777f626c3ac6aa609f4e965d2 |
20-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Add GetDescription() and __repr__ () methods to most API classes, to allow "print" from inside Python to print out the objects in a more useful manner. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114321 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BCommandReturnObject.h
BCompileUnit.h
BDebugger.h
BDefines.h
BError.h
BEvent.h
BFileSpec.h
BFrame.h
BFunction.h
BInstruction.h
BLineEntry.h
BModule.h
BProcess.h
BStream.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BType.h
BValue.h
|
238c0a1e7b733cee539258faa656159c63f9e893 |
18-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed the way set/show variables were being accessed to being natively accessed by the objects that own the settings. The previous approach wasn't very usable and made for a lot of unnecessary code just to access variables that were already owned by the objects. While I fixed those things, I saw that CommandObject objects should really have a reference to their command interpreter so they can access the terminal with if they want to output usaage. Fixed up all CommandObjects to take an interpreter and cleaned up the API to not need the interpreter to be passed in. Fixed the disassemble command to output the usage if no options are passed down and arguments are passed (all disassebmle variants take options, there are no "args only"). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114252 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
86ba24de3b14dedb52d9c97269d23a90692626aa |
17-Sep-2010 |
Johnny Chen <johnny.chen@apple.com> |
Fixed build error of LLDBWrapPython.cpp by removing the "protected" access modifier. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114194 91177308-0d34-0410-b5e6-96231b3b80d8
BStringList.h
|
ab7b39c679528fa2574430ec8035ee83d664acb8 |
17-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
We now have SBStream that mirrors the generic stream classes we use inside lldb (lldb_private::StreamFile, and lldb_private::StreamString). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114188 91177308-0d34-0410-b5e6-96231b3b80d8
BStream.h
BStringList.h
|
dfc91c368886f961b5cac95efc9adfe9be05cf73 |
15-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Remove unnecessary/inappropriate output-printing functions from the API. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113993 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
BBreakpoint.h
BCommandInterpreter.h
BDefines.h
BEvent.h
BThread.h
BValue.h
|
eea264007bc5fb42c8f3239726a9d28ae42e1b7b |
15-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Moved the section load list up into the target so we can use the target to symbolicate things without the need for a valid process subclass. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113895 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BTarget.h
|
4ae519666628cca07c194bf677163009cc2e5a8b |
11-Sep-2010 |
Jim Ingham <jingham@apple.com> |
Move the "Object Description" into the ValueObject, and the add an API to SBValue to access it. For now this is just the result of ObjC NSPrintForDebugger, but could be extended. Also store the results of the ObjC Object Printer in a Stream, not a ConstString. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113660 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
466f6c4c0783c6b5197059caccab94faf1e605e9 |
10-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Added some missing API for address resolving within a module, and looking up a seciton offset address (SBAddress) within a module that returns a symbol context (SBSymbolContext). Also added a SBSymbolContextList in preparation for adding find/lookup APIs that can return multiple results. Added a lookup example code that shows how to do address lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113599 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BModule.h
BSymbolContext.h
BSymbolContextList.h
|
eddffe93d2c9ebb575e7b03fe1c5e71f9ecaf9f1 |
10-Sep-2010 |
Caroline Tice <ctice@apple.com> |
If the file the user specifies can't be found in the current directory, and the user didn't specify a particular directory, search for the file using the $PATH environment variable. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113575 91177308-0d34-0410-b5e6-96231b3b80d8
BFileSpec.h
|
b8314fe67960cfcc5d9e9232be4c1914c9ef0ce3 |
09-Sep-2010 |
Caroline Tice <ctice@apple.com> |
Make API calls for setting/getting user settable variables static. Modify Driver to handle SIGWINCH signals and automatically re-set the term-width variable. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113506 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
69aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9 |
07-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Added more API to lldb::SBBlock to allow getting the block parent, sibling and first child block, and access to the inline function information. Added an accessor the StackFrame: Block * lldb_private::StackFrame::GetFrameBlock(); LLDB represents inline functions as lexical blocks that have inlined function information in them. The function above allows us to easily get the top most lexical block that defines a stack frame. When there are no inline functions in function, the block returned ends up being the top most block for the function. When the PC is in an inlined funciton for a frame, this will return the first parent block that has inlined function information. The other accessor: StackFrame::GetBlock() will return the deepest block that matches the frame's PC value. Since most debuggers want to display all variables in the current frame, the Block returned by StackFrame::GetFrameBlock can be used to retrieve all variables for the current frame. Fixed the lldb_private::Block::DumpStopContext(...) to properly display inline frames a block should display all of its inlined functions. Prior to this fix, one of the call sites was being skipped. This is a separate code path from the current default where inlined functions get their own frames. Fixed an issue where a block would always grab variables for any child inline function blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113195 91177308-0d34-0410-b5e6-96231b3b80d8
BBlock.h
BFileSpec.h
BFrame.h
|
6e4c5ce0f697eb9899a54854a2a9004e961b0de2 |
04-Sep-2010 |
Caroline Tice <ctice@apple.com> |
This is a very large commit that completely re-does the way lldb handles user settable internal variables (the equivalent of set/show variables in gdb). In addition to the basic infrastructure (most of which is defined in UserSettingsController.{h,cpp}, there are examples of two classes that have been set up to contain user settable variables (the Debugger and Process classes). The 'settings' command has been modified to be a command-subcommand structure, and the 'set', 'show' and 'append' commands have been moved into this sub-commabnd structure. The old StateVariable class has been completely replaced by this, and the state variable dictionary has been removed from the Command Interpreter. Places that formerly accessed the state variable mechanism have been modified to access the variables in this new structure instead (checking the term-width; getting/checking the prompt; etc.) Variables are attached to classes; there are two basic "flavors" of variables that can be set: "global" variables (static/class-wide), and "instance" variables (one per instance of the class). The whole thing has been set up so that any global or instance variable can be set at any time (e.g. on start up, in your .lldbinit file), whether or not any instances actually exist (there's a whole pending and default values mechanism to help deal with that). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113041 91177308-0d34-0410-b5e6-96231b3b80d8
BCommandInterpreter.h
BDebugger.h
BDefines.h
BError.h
|
17dae081d7b88d24a7af6b07c10fc5981f81e2a9 |
02-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
StackFrame objects now own ValueObjects for any frame variables (locals, args, function statics, file globals and static variables) that a frame contains. The StackFrame objects can give out ValueObjects instances for each variable which allows us to track when a variable changes and doesn't depend on variable names when getting value objects. StackFrame::GetVariableList now takes a boolean to indicate if we want to get the frame compile unit globals and static variables. The value objects in the stack frames can now correctly track when they have been modified. There are a few more tweaks needed to complete this work. The biggest issue is when stepping creates partial stacks (just frame zero usually) and causes previous stack frames not to match up with the current stack frames because the previous frames only has frame zero. We don't really want to require that all previous frames be complete since stepping often must check stack frames to complete their jobs. I will fix this issue tomorrow. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112800 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
|
452bf613496c7290c6b7a1a1eb28efbce63fd3b9 |
31-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Added the ability to disable ASLR (Address Space Layout Randomization). ASLR is disabled by default, and can be enabled using: (lldb) set disable-aslr 0 git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112616 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
74989e88af7e04f3fe0bb3a800163113d7e0ca12 |
30-Aug-2010 |
Jim Ingham <jingham@apple.com> |
Added a way to open the current source file & line in an external editor, and you can turn this on with: lldb -e git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112502 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
4ead2e9a5a74f465d00b0301c165fbebf4ee4ff3 |
28-Aug-2010 |
Johnny Chen <johnny.chen@apple.com> |
o Exposed SBFileSpec to the Python APIs in lldb.py. o Fixed a crasher when getting it via SBTarget.GetExecutable(). >>> filespec = target.GetExecutable() Segmentation fault o And renamed SBFileSpec::GetFileName() to GetFilename() to be consistent with FileSpec::GetFilename(). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112308 91177308-0d34-0410-b5e6-96231b3b80d8
BFileSpec.h
|
c833295baeec641086f536e78050388af36784f8 |
26-Aug-2010 |
Jim Ingham <jingham@apple.com> |
Change "Current" as in GetCurrentThread, GetCurrentStackFrame, etc, to "Selected" i.e. GetSelectedThread. Selected makes more sense, since these are set by some user action (a selection). I didn't change "CurrentProcess" since this is always controlled by the target, and a given target can only have one process, so it really can't be selected. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112221 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BProcess.h
BTarget.h
BThread.h
BValue.h
|
03f2b3bdd37d922efc9ddb1b015a1feb55cdbe1e |
18-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Allow the SBDebugger to construct itself with the default constructor so objects can own one of these objects and assign a valid value at a later point. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@111377 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
78ead8b92cdde803f360736a1dc893299d9d9785 |
06-Aug-2010 |
Sean Callanan <scallanan@apple.com> |
Fixed namespace issues that were breaking the SWIG wrappers on a non-internal SnowLeopard system. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110413 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
ef28e2ab6bc6273c129f0bc8a0c88a24d3b6876e |
05-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Added functionality to our API for SBType. This will allow users to eventually find and peruse static type information from modules. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110297 91177308-0d34-0410-b5e6-96231b3b80d8
BType.h
|
43490d1332d13694fb6690365984bf0ecdd8dcc3 |
30-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Added "void Clear();" methods to SBDebugger, SBTarget and SBThread so they can release their shared pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109882 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BTarget.h
BThread.h
|
c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3 |
24-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Added needed breakpoint functionality to the public API that includes: SBTarget: - get breakpoint count - get breakpoint at index SBBreakpoint: - Extract data from breakpoint events git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@109289 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BEvent.h
BTarget.h
|
54e7afa84d945f9137f9372ecde432f9e1a702fc |
09-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Merged Eli Friedman's linux build changes where he added Makefile files that enabled LLVM make style building and made this compile LLDB on Mac OS X. We can now iterate on this to make the build work on both linux and macosx. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@108009 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BBreakpointLocation.h
|
704363531ee4877ccc6d35d0702876096f54c67b |
01-Jul-2010 |
Greg Clayton <gclayton@apple.com> |
Centralized all disassembly into static functions in source/Core/Disassembler.cpp. Added the ability to read memory from the target's object files when we aren't running, so disassembling works before you run! Cleaned up the API to lldb_private::Target::ReadMemory(). Cleaned up the API to the Disassembler to use actual "lldb_private::Address" objects instead of just an "addr_t". This is nice because the Address objects when resolved carry along their section and module which can get us the object file. This allows Target::ReadMemory to be used when we are not running. Added a new lldb_private::Address dump style: DumpStyleDetailedSymbolContext This will show a full breakdown of what an address points to. To see some sample output, execute a "image lookup --address <addr>". Fixed SymbolContext::DumpStopContext(...) to not require a live process in order to be able to print function and symbol offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107350 91177308-0d34-0410-b5e6-96231b3b80d8
BTarget.h
|
558be58c085ed1d3e33c01f5ea3bf0eff63ab827 |
30-Jun-2010 |
Caroline Tice <ctice@apple.com> |
Add a unique ID to each debugger instance. Add functions to look up debugger by id Add global variable to lldb python module, to hold debugger id Modify embedded Python interpreter to update the global variable with the id of its current debugger. Modify the char ** typemap definition in lldb.swig to accept 'None' (for NULL) as a valid value. The point of all this is so that, when you drop into the embedded interpreter from the command interpreter (or when doing Python-based breakpoint commands), there is a way for the Python side to find/get the correct debugger instance ( by checking debugger_unique_id, then calling SBDebugger::FindDebuggerWithID on it). git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107287 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
63094e0bb161580564954dee512955c1c79d3476 |
23-Jun-2010 |
Greg Clayton <gclayton@apple.com> |
Very large changes that were needed in order to allow multiple connections to the debugger from GUI windows. Previously there was one global debugger instance that could be accessed that had its own command interpreter and current state (current target/process/thread/frame). When a GUI debugger was attached, if it opened more than one window that each had a console window, there were issues where the last one to setup the global debugger object won and got control of the debugger. To avoid this we now create instances of the lldb_private::Debugger that each has its own state: - target list for targets the debugger instance owns - current process/thread/frame - its own command interpreter - its own input, output and error file handles to avoid conflicts - its own input reader stack So now clients should call: SBDebugger::Initialize(); // (static function) SBDebugger debugger (SBDebugger::Create()); // Use which ever file handles you wish debugger.SetErrorFileHandle (stderr, false); debugger.SetOutputFileHandle (stdout, false); debugger.SetInputFileHandle (stdin, true); // main loop SBDebugger::Terminate(); // (static function) SBDebugger::Initialize() and SBDebugger::Terminate() are ref counted to ensure nothing gets destroyed too early when multiple clients might be attached. Cleaned up the command interpreter and the CommandObject and all subclasses to take more appropriate arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106615 91177308-0d34-0410-b5e6-96231b3b80d8
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BBroadcaster.h
BCommandContext.h
BCommandInterpreter.h
BCommandReturnObject.h
BCommunication.h
BCompileUnit.h
BDebugger.h
BError.h
BEvent.h
BFileSpec.h
BFrame.h
BFunction.h
BInputReader.h
BInstruction.h
BLineEntry.h
BListener.h
BModule.h
BProcess.h
BSourceManager.h
BStringList.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BValue.h
BValueList.h
|
8e5e38f584a613f601a37f62e1b25230cb400c6f |
18-Jun-2010 |
Jim Ingham <jingham@apple.com> |
Adding setting thread specific breakpoints by name, ID, index & queue name to the SB interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106268 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BBreakpointLocation.h
|
7884ab842f7f0be6c583eac2904f5763706816bc |
12-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105897 91177308-0d34-0410-b5e6-96231b3b80d8
BBreakpoint.h
BEvent.h
BInstruction.h
BInstructionList.h
BProcess.h
BSourceManager.h
BThread.h
BValue.h
|
87c871847dba627a07cf6f4ac8cfb4d6722eccb5 |
09-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Misc warning/error fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105713 91177308-0d34-0410-b5e6-96231b3b80d8
BValue.h
BValueList.h
|
1501a967735469f0e21950905cc64ca24d305fa0 |
09-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Per surrounding style, use stdarg.h instead of cstdio, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105711 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
|
e28824e0b988221c7eedf8e3d212527d2bdac6a7 |
09-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
And a few more warning/error fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105698 91177308-0d34-0410-b5e6-96231b3b80d8
BDebugger.h
BProcess.h
|
74089e10cfbb4665da128f26d78c2b4006b5f1c6 |
09-Jun-2010 |
Christopher Friesen <friesen@apple.com> |
missed a greater than to quote conversion git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105690 91177308-0d34-0410-b5e6-96231b3b80d8
BThread.h
|
5f81547fd786584b10999c087528b323b5945896 |
09-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix include lines to use more conventional paths, part 1. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105688 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BBroadcaster.h
BCommandContext.h
BCommandInterpreter.h
BCommandReturnObject.h
BCommunication.h
BCompileUnit.h
BDebugger.h
BDefines.h
BError.h
BEvent.h
BFileSpec.h
BFrame.h
BFunction.h
BHostOS.h
BInputReader.h
BInstruction.h
BInstructionList.h
BLineEntry.h
BListener.h
BModule.h
BProcess.h
BSourceManager.h
BStringList.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BType.h
BValue.h
BValueList.h
|
24943d2ee8bfaa7cf5893e4709143924157a5c1e |
08-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of lldb code from internal Apple repo. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
LDB.h
BAddress.h
BBlock.h
BBreakpoint.h
BBreakpointLocation.h
BBroadcaster.h
BCommandContext.h
BCommandInterpreter.h
BCommandReturnObject.h
BCommunication.h
BCompileUnit.h
BDebugger.h
BDefines.h
BError.h
BEvent.h
BFileSpec.h
BFrame.h
BFunction.h
BHostOS.h
BInputReader.h
BInstruction.h
BInstructionList.h
BLineEntry.h
BListener.h
BModule.h
BProcess.h
BSourceManager.h
BStringList.h
BSymbol.h
BSymbolContext.h
BTarget.h
BThread.h
BType.h
BValue.h
BValueList.h
|