- May 15, 2013
-
-
Greg Clayton authored
A first pass at auto completion for variables and their children. This is currently hooked up for "frame variable" only. With a little work we can also enable it for the "expression" command and also for other things. llvm-svn: 181850
-
- May 10, 2013
-
-
rdar://problem/13854277Greg Clayton authored
<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. llvm-svn: 181631
-
- May 08, 2013
-
-
rdar://problem/13621080Enrico Granata authored
This commit changes the ${function.name-with-args} prompt keyword to also tackle structs Previously, since aggregates have no values, this would show up as foo=(null) This checkin changes that to instead print foo=(Foo at 0x123) (i.e. typename at address) There are other potential choices here (summary, one-liner printout of all members, ...) and I would love to hear feedback about better options, if any llvm-svn: 181462
-
- May 02, 2013
-
-
rdar://problem/13338477Enrico Granata authored
clang sugarcoats expressions of the sort *(int (*)[3])foo where foo is an int* saying that their type class is Paren This checkin updates our lookup tables to properly desugar Paren into the actual type of interest llvm-svn: 180938
-
Sean Callanan authored
in debug information more aggressive. Emitting classes containing these methods causes crashes in Clang when dealing with complex code bases. <rdar://problem/12640887> llvm-svn: 180895
-
- May 01, 2013
-
-
rdar://problem/13776113Greg Clayton authored
Dynamic type resolution not working for typedef's such as the __ptr_ member in the C++11 std::shared_ptr. llvm-svn: 180818
-
- Apr 30, 2013
-
-
Sean Callanan authored
an assertion if we attempted to get the size of one. <rdar://problem/13748253> llvm-svn: 180763
-
- Apr 29, 2013
-
-
Greg Clayton authored
Cleanup logging to use the new "std::string FileSpec::GetPath()" function. Also added a similar function for modules: std::string Module::GetSpecificationDescription () const; This returns the module as "/usr/lib/libfoo.dylib" for normal files (calls "std::string FileSpec::GetPath()" on m_file) but it also might include the object name in case the module is for a .o file in a BSD archive ("/usr/lib/libfoo.a(bar.o)"). Cleaned up necessary logging code to use it. llvm-svn: 180717
-
- Apr 25, 2013
-
-
Greg Clayton authored
Added the ability to extract a ModuleSpecList (a new class) from an ObjectFile. This is designed to be used when you have an object file that contains one or more architectures (MacOSX universal (fat) files) and/or one or more objects (BSD archive (.a files)). There is a new static ObjectFile function you can call: size_t ObjectFile::GetModuleSpecifications (const FileSpec &file, lldb::offset_t file_offset, ModuleSpecList &specs) This will fill in "specs" which the details of all the module specs (file + arch + UUID (if there is one) + object name (for BSD archive objects eventually) + file offset to the object in question). This helps us when a user specifies a file that contains a single architecture, and also helps us when we are given a debug symbol file (like a dSYM file on MacOSX) that contains one or more architectures and we need to be able to match it up to an existing Module that has no debug info. llvm-svn: 180224
-
- Apr 24, 2013
-
-
rdar://problem/13298695Greg Clayton authored
Fixed LLDB to be able to correctly parse template parameters that have no name and no type. This can be triggered by the following LLVM/Clang code: template <typename T, typename = void> class SmallVectorTemplateCommon : public SmallVectorBase { The “typename = void” was emitting DWARF with an empty DW_AT_name and no DW_AT_type. We now correctly infer that no DW_AT_type means “void” and that an empty name is ok. This means you can now call functions on things that inherit from SmallVectorTemplateCommon. llvm-svn: 180155
-
- Apr 22, 2013
-
-
Matt Kopec authored
Do this until we are able to resolve these symbols to their actual implementations without needing runtime support. llvm-svn: 180029
-
- Apr 19, 2013
-
-
Greg Clayton authored
llvm-svn: 179892
-
Greg Clayton authored
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. llvm-svn: 179805
-
- Apr 18, 2013
-
-
Greg Clayton authored
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. llvm-svn: 179779
-
- Apr 17, 2013
-
-
Ashok Thirumurthi authored
- Specify SC_Static given DIE attributes for static methods and operators. Thanks to Wei Pan for his review and the help with root-causing. llvm-svn: 179727
-
- Apr 14, 2013
-
-
Greg Clayton authored
- Do not add symbols with no names - Make sure that symbols from ELF symbol tables know that the byte size is correct. Previously the symbols would calculate their sizes by looking for the next symbol and take symbols that had zero size and make them have invalid sizes. - Added the ability to dump raw ELF symbols by adding a Dump method to ELFSymbol Also removed some unused code from lldb_private::Symtab. llvm-svn: 179466
-
- Apr 11, 2013
-
-
Greg Clayton authored
Static variables inside classes were not being added to the RecordDecl, now they are. This gets us closer to being able to display static variables in classes. llvm-svn: 179296
-
- Apr 06, 2013
-
-
Greg Clayton authored
Now we can: 1 - see the return value for functions that return types that use the "ext_vector_size" 2 - dump values that use the vector attributes ("expr $ymm0") 3 - modified the DWARF parser to correctly parse GNU vector types from the DWARF by turning them into clang::Type::ExtVector types instead of just standard arrays llvm-svn: 178924
-
- Apr 03, 2013
-
-
rdar://problem/13384801Greg Clayton authored
Make lldb_private::RegularExpression thread safe everywhere. This was done by removing the m_matches array from the lldb_private::RegularExpression class and putting it into the new lldb_private::RegularExpression::Match class. When executing a regular expression you now have the option to create a lldb_private::RegularExpression::Match object and pass a pointer in if you want to get parenthesized matching. If you don't want any matching, you pass in NULL. The lldb_private::RegularExpression::Match object is initialized with the number of matches you desire. Any matching strings are now extracted from the lldb_private::RegularExpression::Match objects. This makes the regular expression objects thread safe and as a result many more regex objects were turned into static objects that end up using a local lldb_private::RegularExpression::Match object when executing. llvm-svn: 178702
-
Rafael Espindola authored
This should fix the build breakage caused by the api change in 178663. llvm-svn: 178700
-
rdar://problem/13506727Greg Clayton authored
Symbol table function names should support lookups like symbols with debug info. To fix this I: - Gutted the way FindFunctions is used, there used to be way too much smarts only in the DWARF plug-in - Made it more efficient by chopping the name up once and using simpler queries so that SymbolFile and Symtab plug-ins don't need to do as much - Filter the results at a higher level - Make the lldb_private::Symtab able to chop up C++ mangled names and make as much sense out of them as possible and also be able to search by basename, fullname, method name, and selector name. llvm-svn: 178608
-
- Mar 30, 2013
-
-
Sean Callanan authored
they are probably trivial. This means that we don't confuse Clang about whether a class is trivially copy constructible. It can figure that out itself as long as we don't explicitly feed it the constructors. If the class is trivially copy-constructible, this can change the ABI that Clang uses to call functions that return that class (e.g., by making the object be returned in a register), so this is quite important for correctness. <rdar://problem/13457741> llvm-svn: 178411
-
Sean Callanan authored
ASTContexts that will not stay around. Before, we did this in a very half-hearted way. Now we maintain work queues of all Decls that need to be completed before the source ASTContext can go away; we then expunge their origins completely. <rdar://problem/13511875> llvm-svn: 178410
-
- Mar 28, 2013
-
-
rdar://problem/13521159Greg Clayton authored
LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. llvm-svn: 178191
-
- Mar 27, 2013
-
-
Greg Clayton authored
Don't use a "uintptr_t" for the metadata key, use a "void *". This removes all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata. llvm-svn: 178113
-
- Mar 26, 2013
-
-
Greg Clayton authored
llvm-svn: 178071
-
- Mar 23, 2013
-
-
Jason Molenda authored
llvm-svn: 177776
-
- Mar 22, 2013
-
-
Jason Molenda authored
DWARFCallFrameInfo method which returns a RangeVector pre-size the vector based on the number of entries it will be adding insted of growing the vector as items are added. llvm-svn: 177773
-
- Mar 21, 2013
-
-
Sean Callanan authored
Clang requires them to have complete types, but we were previously only completing them if they were of tag or Objective-C object types. I have implemented a method on the ASTImporter whose job is to complete a type. It handles not only the cases mentioned above, but also array and atomic types. <rdar://problem/13446777> llvm-svn: 177672
-
Jason Molenda authored
This returns a vector of <file address, size> entries for all of the functions in the module that have an eh_frame FDE. Update ObjectFileMachO to use the eh_frame FDE function addresses if the LC_FUNCTION_STARTS section is missing, to fill in the start addresses of any symbols that have been stripped from the binary. Generally speaking, lldb works best if it knows the actual start address of every function in a module - it's especially important for unwinding, where lldb inspects the instructions in the prologue of the function. In a stripped binary, it is deprived of this information and it reduces the quality of our unwinds and saved register retrieval. Other ObjectFile users may want to use the function addresses from DWARFCallFrameInfo to fill in any stripped symbols like ObjectFileMachO does already. <rdar://problem/13365659> llvm-svn: 177624
-
- Mar 20, 2013
-
-
Jason Molenda authored
track the EH FDEs for the functions in a module to using a RangeDataVector, a more light-weight data structure that only refers to File addresses. Makes the initial FDE scan about 3x faster, uses less memory. <rdar://problem/13465650> llvm-svn: 177585
-
Enrico Granata authored
llvm-svn: 177558
-
- Mar 19, 2013
-
-
Enrico Granata authored
The formatters for std::shared_ptr, std::weak_ptr, std::list, std::vector and std::map as provided by libc++ are now written in C++ instead of Python std::deque is still in Python but is much less commonly used llvm-svn: 177454
-
- Mar 16, 2013
-
-
Enrico Granata authored
Performance improvements to the IsObjCNil () - we only try to resolve the value if the variable under consideration truly is an “Objective-C thing” This also changes the ClangASTContext to make sure that id is correctly marked as being such an ObjC thing llvm-svn: 177203
-
- Mar 14, 2013
-
-
rdar://problem/13421412Greg Clayton authored
Many "byte size" members and variables were using a mixture of uint32_t and size_t. Switching over to using uint64_t everywhere. llvm-svn: 177091
-
rdar://problem/13413693Greg Clayton authored
Fixed a crasher in the new DWARF in .o files line table linking function where "back()" could end up being called on an empty std::vector. llvm-svn: 177082
-
- Mar 12, 2013
-
-
Sean Callanan authored
uninitialized memory, to getTrivialTypeSourceInfo, which initializes its memory, when creating trivial TypeSourceInfos. <rdar://problem/13332253> llvm-svn: 176899
-
Matt Kopec authored
llvm-svn: 176879
-
- Mar 09, 2013
-
-
Sean Callanan authored
an assertion due to non-implicit Objective-C methods without source locations. llvm-svn: 176750
-
- Mar 08, 2013
-
-
Sean Callanan authored
counters for a variety of metrics associated with expression parsing. This should give some idea of how much work the expression parser is doing on Clang's behalf, and help with hopefully reducing that load over time. <rdar://problem/13210748> Audit type search/import for expressions llvm-svn: 176714
-