- Nov 28, 2012
-
-
rdar://problem/12639603Greg Clayton authored
Simplify the logging on ObjectFile::~ObjectFile() to not access an classes above the object file (like the module) so we don't crash when logging object lifetimes. The log message contains the "this" pointer value which can be matched up with the constructor log. llvm-svn: 168754
-
- Nov 27, 2012
-
-
rdar://problem/12106825Greg Clayton authored
Allow the expression parser to see more than just data symbols. We now accept any symbol that has an address. We take precautions to only accept symbols by their mangled or demangled names only if the demangled name was not synthesized. If the demangled name is synthesized, then we now mark symbols accordingly and only compare against the mangled original name. llvm-svn: 168668
-
- Nov 16, 2012
-
-
Greg Clayton authored
llvm-svn: 168204
-
- Nov 12, 2012
-
-
Greg Clayton authored
New compiler warnings caught issues with the m_encoding_uid field that should have been a lldb::user_id_t type, but was a uint32_t a long time ago and never got updated. llvm-svn: 167774
-
Filipe Cabecinhas authored
llvm-svn: 167751
-
- Nov 06, 2012
-
-
rdar://problem/12582031Greg Clayton authored
Unnamed bitfields cause struct layout problems Synthesize unnamed bitfields when required. Most compilers don't mention unnamed bitfields in the DWARF, so we need to create them to keep clang happy with the types we create from the DWARF. We currently can't do this for ObjC since the DW_AT_bit_offset value for any direct ivars of ObjC classes as the values for these attributes are bogus. A bug has been filed on Clang to fix this, and another bug has been filed on LLDB to make sure we fix the DWARF parser once the clang fix is in by looking the the DW_AT_producer in the compile unit attributes and finding the compiler version and only enabling it for newer versions of clang. llvm-svn: 167424
-
- Nov 02, 2012
-
-
rdar://problem/12585314Greg Clayton authored
LLDB now provides base class offsets (virtual and non virtual) to Clang's record layout. We previously were told this wasn't necessary, but it is when pragma pack gets involved. llvm-svn: 167262
-
- Oct 27, 2012
-
-
Jim Ingham authored
so it could hold this information, and then used it to look up unfound names in the object pointer if it exists. This gets "frame var" to work for unqualified references to ivars captured in blocks. But the expression parser is ignoring this information still. llvm-svn: 166860
-
- Oct 26, 2012
-
-
Jason Molenda authored
Full UnwindPlan is trying to do an impossible unwind; in that case invalidate the Full UnwindPlan and replace it with the architecture default unwind plan. This is a scenario that happens occasionally with arm unwinds in particular; the instruction analysis based full unwindplan can mis-parse the functions and the stack walk stops prematurely. Now we can do a simpleminded frame-chain walk to find the caller frame and continue the unwind. It's not ideal but given the complicated nature of analyzing the arm functions, and the lack of eh_frame information on iOS, it is a distinct improvement and fixes some long-standing problems with the unwinder on that platform. This is fixing <rdar://problem/12091421>. I may re-use this invalidate feature in the future if I can identify other cases where the full unwindplan's unwind information is clearly incorrect. This checkin also includes some cleanup for the volatile register definition in the arm ABI plugin for <rdar://problem/10652166> although work remains to be done for that bug. llvm-svn: 166757
-
- Oct 25, 2012
-
-
Sean Callanan authored
reflect a change to the initializer. llvm-svn: 166657
-
- Oct 24, 2012
-
-
Greg Clayton authored
Objective C cleanup. Removed an cache that was no longer needed and changes the code that gets the dynamic type and class name to use our new Objective C cache. llvm-svn: 166512
-
- Oct 22, 2012
-
-
rdar://problem/12473003Greg Clayton authored
Allow type searches to specify a type keyword when searching for type. Currently supported type keywords are: struct, class, union, enum, and typedef. So now you can search for types with a string like "struct foo". llvm-svn: 166420
-
- Oct 18, 2012
-
-
Sean Callanan authored
using a reference-counted pointer. This avoids memory-management problems when the TargetOptions are deleted. llvm-svn: 166132
-
- Oct 15, 2012
-
-
Greg Clayton authored
lldb::BasicType ClangASTContext::GetLLDBBasicTypeEnumeration (clang_type_t clang_type) would return a bogus value. llvm-svn: 165979
-
- Oct 13, 2012
-
-
rdar://problem/12490588Greg Clayton authored
From SBType, we can now get a lldb::BasicType enumeration out of an existing type. llvm-svn: 165857
-
- Oct 12, 2012
-
-
Jim Ingham authored
llvm-svn: 165808
-
- Oct 05, 2012
-
-
Jim Ingham authored
ClangASTContext::GetIndexOfChildWithName - increment the child index we plan to return as we iterate through the ivars. <rdar://problem/12433299> llvm-svn: 165264
-
- Oct 03, 2012
-
-
Sean Callanan authored
llvm-svn: 165144
-
- Sep 25, 2012
-
-
Sean Callanan authored
top-of-tree. Removed all local patches and llvm.zip. The intent is that fron now on top-of-tree will always build against LLVM/Clang top-of-tree, and that problems building will be resolved as they occur. Stable release branches of LLDB can be constructed as needed and linked to specific release branches of LLVM/Clang. llvm-svn: 164563
-
- Sep 21, 2012
-
-
Sean Callanan authored
not correctly store the contents of Objective-C classes. This was due to a combination of factors: 1) Types were only being completed if we were looking inside them for specific ivars (using FindExternalVisibleDeclsByName). We now look the complete type up at every FindExternalLexicalDecls. 2) Even if the types were completed properly, ValueObjectConstResult overrode the type of every ValueObject using the complete type for its class from the debug information. Superclasses of complete classes are not guaranteed to be complete. Although "frame variable" uses the debug information, the expression parser does now piece together complete types at every level (as described in Bullet 1), so I provided a way for the expression parser to prevent overriding. 3) Type sizes were being miscomputed by ClangASTContext. It ignored the ISA pointer and only counted fields. We now correctly count the ISA in the size of an object. <rdar://problem/12315386> llvm-svn: 164333
-
- Sep 18, 2012
-
-
Greg Clayton authored
Stop using the "%z" size_t modifier and cast all size_t values to uint64_t. Some platforms don't support this modification. llvm-svn: 164148
-
- Sep 11, 2012
-
-
Jason Molenda authored
it is unconditionally present now. ObjectContainerBSDArchive::CreateInstance %z8.8x is not a valid printf arg specifier, %8.8zx would work for size_t arg but this arg is addr_t. use %8.8llx and cast up to uint64_t. ObjectFile::FindPlugin ditto. DynamicRegisterInfo::SetRegisterInfo ifdef this function out if LLDB_DISABLE_PYTHON. llvm-svn: 163599
-
- Sep 08, 2012
-
-
Sean Callanan authored
type was being completed. llvm-svn: 163440
-
- Sep 01, 2012
-
-
Jim Ingham authored
Add a convenience function to get the range containing a given PC specified as load address + Target. llvm-svn: 163038
-
- Aug 31, 2012
-
-
rdar://problem/12202862Greg Clayton authored
Added a fix for incorrect dynamic typing. Before when asking if a C++ class could be dynamic, we would answer yes for incomplete C++ classes. This turned out to have issues where if a class was not virtual, yet had its first ivar be an instance of a virtual class, we would incorrectly say that a class was virtual and we would downcast it to be a pointer to the first ivar. We now ask the class to complete itself prior to answering the question. We need to test the effects on memory of this change prior to submission. It is the safest and best fix, but it does have a potential downside of higher memory consumption. llvm-svn: 163014
-
- Aug 29, 2012
-
-
rdar://problem/11757916Greg Clayton authored
Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes: - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was. - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile() Cleaned up header includes a bit as well. llvm-svn: 162860
-
- Aug 18, 2012
-
-
Jason Molenda authored
when you want to find the caller's saved pc, you look up the return address register and use that. On arm, for instance, this would be the contents of the link register (lr). If the eh_frame CIE defines an RA, record that fact in the UnwindPlan. When we're finding a saved register, if it's the pc, lok for the location of the return address register instead. <rdar://problem/12062310> llvm-svn: 162167
-
- Aug 10, 2012
-
-
Jason Molenda authored
llvm-svn: 161696
-
- Aug 09, 2012
-
-
rdar://problem/10449092Enrico Granata authored
<rdar://problem/10449092> Adding a new uppercase hex format specifier. This commit also changes the short names for formats so that uppercase hex can be 'X', which was previously assigned to hex float. hex float now has no short name. llvm-svn: 161606
-
- Aug 01, 2012
-
-
rdar://problem/11275622Greg Clayton authored
Added new API to lldb::SBTypeMember for bitfields: bool SBTypeMember::IsBitfield(); uint32_t SBTypeMember::GetBitfieldSizeInBits(); Also added new properties for easy access. Now SBTypeMember objects in python have a "fields" property for all type fields, "bases" for all direct bases, "vbases" for all virtual base classes and "members" for a combo of all three organized by bit offset. They all return a python list() of SBTypeMember objects. Usage: (lldb) script >>> t = lldb.target.FindFirstType("my_type") >>> for field in t.fields: ... print field >>> for vbase in t.vbases: ... print vbase >>> for base in t.bases: ... print base >>> for member in t.members: ... print member Also added new "is_bitfield" property to the SBTypeMember objects that will return the result of SBTypeMember::IsBitfield(), and "bitfield_bit_size" which will return the result of SBTypeMember::GetBitfieldSizeInBits(); I also fixed "SBTypeMember::GetOffsetInBytes()" to return the correct byte offset. llvm-svn: 161091
-
Jason Molenda authored
instructions, be sure to allocate new UnwindPlan::Row's each time we push a row on to the UnwindPlan so we don't mutate it any further. (fallout from changing the UnwindPlan from having a vector of Row's to having a vector of RowSP shared pointers.) <rdar://problem/11997385> llvm-svn: 161089
-
- Jul 24, 2012
-
-
Jim Ingham authored
Sanity check the result of Symbol::GetPrologueByteSize - make sure it is not greater than the size of the Symbol returning it. llvm-svn: 160656
-
- Jul 19, 2012
-
-
Greg Clayton authored
Cleaned up the lldb_private::Mangled class to get rid of the tokenizing code that has bit rotted and isn't being used. Also cleaned up the API to the "lldb_private::Mangled" to always take "const ConstString &" arguments instead of both "const ConstString &" and "const char *". llvm-svn: 160466
-
- Jul 18, 2012
-
-
Greg Clayton authored
Cleaned up incorrect STL std::map comparison code and use the operator == on std::map objects instead of manually implementing the comparisons. Also modified the UnwindPlan::AppendRow() function to take a "const RowSP &" object so we don't have to copy shared pointers when calling this function. llvm-svn: 160448
-
- Jul 17, 2012
-
-
Greg Clayton authored
llvm-svn: 160338
-
Jason Molenda authored
the state of the unwind instructions once the prologue has finished. If it hits an early return epilogue in the middle of the function, re-instate the prologue after that epilogue has completed so that we can still unwind for cases where the flow of control goes past that early-return. <rdar://problem/11775059> Move the UnwindPlan operator== definition into the .cpp file, expand the definition a bit. Add some casts to a SBCommandInterpreter::HandleCompletion() log statement so it builds without warning on 64- and 32-bit systems. llvm-svn: 160337
-
- Jul 14, 2012
-
-
Jason Molenda authored
a shared pointer to ease some memory management issues with a patch I'm working on. The main complication with using SPs for these objects is that most methods that build up an UnwindPlan will construct a Row to a given instruction point in a function, then add additional regsaves in the next instruction point to that row and push it again. A little care is needed to not mutate the previous instruction point's Row once these are switched to being held behing shared pointers. llvm-svn: 160214
-
rdar://problem/11870357Greg Clayton authored
Allow "frame variable" to find ivars without the need for "this->" or "self->". llvm-svn: 160211
-
- Jul 13, 2012
-
-
Sean Callanan authored
LLDB to distinguish between multiple anonymous structs/unions in the same class. <rdar://problem/11466212> llvm-svn: 160186
-
- Jul 12, 2012
-
-
Sean Callanan authored
generation of the FDE index. <rdar://problem/11813705> llvm-svn: 160099
-