| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
nothing else to support clang's new -gline-tables-only mode of compiling.
llvm-svn: 169994
|
|
|
|
|
|
| |
DWARF along with the older DW_AT_MIPS_linkage_name attribute.
llvm-svn: 169657
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- remove unused members
- add NO_PEDANTIC to selected Makefiles
- fix return values (removed NULL as needed)
- disable warning about four-char-constants
- remove unneeded const from operator*() declaration
- add missing lambda function return types
- fix printf() with no format string
- change sizeof to use a type name instead of variable name
- fix Linux ProcessMonitor.cpp to be 32/64 bit friendly
- disable warnings emitted by swig-generated C++ code
Patch by Matt Kopec!
llvm-svn: 169645
|
|
|
|
|
|
| |
Fixed zero sized arrays to work correctly. This will only happen once we get a clang that emits correct debug info for zero sized arrays. For now I have marked the TestStructTypes.py as an expected failure.
llvm-svn: 169465
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Removed the BitfieldMap class because it is unnecessary.
We now just track the most recently added field.
- Moved the code that calculates bitfield widths so it
can also be used to determine whether it's necessary
to insert anonymous fields.
- Simplified the anonymous field calculation code into
three cases (two of which are resolved identically).
- Beefed up the bitfield testcase.
llvm-svn: 169449
|
|
|
|
|
|
| |
Fixed arrays with a size of 1 to correctly have 1 member when DW_AT_upper_bound was set to zero and no other attributes were set.
llvm-svn: 169431
|
|
|
|
|
|
|
|
| |
- use macros from inttypes.h for format strings instead of OS-specific types
Patch from Matt Kopec!
llvm-svn: 168945
|
|
|
|
|
|
| |
Properly detect the if unnamed bitfields are supported by clang if the major calng version is higher than 425.
llvm-svn: 168734
|
|
|
|
|
|
| |
Detect the new fixed clang that properly supports bitfields in objc classes.
llvm-svn: 168655
|
|
|
|
|
|
| |
Fixed an issue where lldb was setting breakpoints on too many methods when a partial function name with namespaces or class qualifiers was used. For example setting a breakpoint of "Foo::dealloc" was accidentally settings breakpoints on all objective C functions whose selector was "dealloc"...
llvm-svn: 168053
|
|
|
|
|
|
| |
When uniquing classes against one another we can't depend on any or all of the artificial functions (default ctor, dtor, copy ctor, move ctor, etc) being in each definition. Now we treat those separately and handle those to the best of our ability.
llvm-svn: 167752
|
|
|
|
|
|
|
| |
- Add missing operator= definition for DelayedAddObjCClassProperty
- needed to be compatible with libstdc++ vector implementation
llvm-svn: 167747
|
|
|
|
|
|
|
|
|
| |
DynamicLoaderDarwinKernel::OSKextLoadedKextSummary::LoadImageUsingMemoryModule
where it assumed that a kernel had been found in memory, when that may not be
the case when we're attaching to a device early in the boot process.
<rdar://problem/12638140>
llvm-svn: 167564
|
|
|
|
|
|
|
|
|
|
| |
<rdar://problem/12153915> (partial fix)
Remove an assert and place an error message instead so we don't crash when we run into a type tag that we don't recognize. We will now emit a warning so that hopefully we can get a bug report that has example code that shows what we are missing.
Also fixed a case when trying to unique one type to another where we would confuse concrete instances of methods with their definitions and end up not correctly registering the types.
llvm-svn: 167557
|
|
|
|
| |
llvm-svn: 167473
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 167236
|
|
|
|
|
|
|
|
|
| |
CXXMethodDecl but tried to manipulate it
anyway.
<rdar://problem/12601996>
llvm-svn: 167095
|
|
|
|
| |
llvm-svn: 167060
|
|
|
|
| |
llvm-svn: 167024
|
|
|
|
|
|
|
|
|
|
| |
expanded the decl metadata
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
|
|
|
|
|
|
|
|
| |
of structures, and added a testcase.
<rdar://problem/12551591>
llvm-svn: 166450
|
|
|
|
|
|
|
|
|
|
|
| |
1 by the expression parser. We now correctly
report that they are of size 0. (C++ structs
are mandated to have nonzero size, and Clang marks
them as being 1 byte in size.)
<rdar://problem/12380800>
llvm-svn: 166256
|
|
|
|
| |
llvm-svn: 165808
|
|
|
|
| |
llvm-svn: 165441
|
|
|
|
|
|
| |
from a NULL ObjCInterfaceDecl.
llvm-svn: 165261
|
|
|
|
|
|
| |
the DWARF 4 specification.
llvm-svn: 164779
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Some platforms don't support this modification.
llvm-svn: 164148
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Remember to copy the address byte size and the byte order when copying data into a DWARF location object, or things will go wrong.
llvm-svn: 161721
|
|
|
|
|
|
| |
reference into the debug info until test suite failures are resolved.
llvm-svn: 161720
|
|
|
|
|
|
| |
return bool.
llvm-svn: 161719
|
|
|
|
|
|
| |
Fixed an issue that could cause references the shared data for an object file to stay around longer than intended and could cause memory bloat when debugging multiple times.
llvm-svn: 161716
|
|
|
|
|
|
|
|
|
| |
and instead made us use implicit casts to bool.
This generated a warning in C++11.
<rdar://problem/11930775>
llvm-svn: 161559
|
|
|
|
|
|
|
|
| |
hash_multimap to unordered_multimap.
<rdar://problem/11930775>
llvm-svn: 161558
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
single element. Also modified our struct test
case to test this.
llvm-svn: 160449
|
|
|
|
|
|
| |
Remove assertions and turn what used the be the assertion into a logged error with instructions on what to attach to a radar so we can track down why this is happening.
llvm-svn: 160392
|
|
|
|
| |
llvm-svn: 160338
|
|
|
|
|
|
| |
Fixed issues that could happen when the UUID doesn't change in a binary and old stale debug info could end up being used.
llvm-svn: 160145
|
|
|
|
|
|
|
|
| |
a NULL symbol file.
<rdar://problem/11795939>
llvm-svn: 159882
|
|
|
|
|
|
|
|
|
| |
didn't check if the two classes had the same number
of members.
<rdar://problem/11678873>
llvm-svn: 159880
|
|
|
|
| |
llvm-svn: 159685
|
|
|
|
|
|
|
|
|
|
|
| |
a cache of address ranges for child sections,
accelerating lookups. This cache is built during
object file loading, and is then set in stone once
the object files are done loading. (In Debug builds,
we ensure that the cache is never invalidated after
that.)
llvm-svn: 158188
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that automatically generated setters/getters only
get added to a class after explicitly declared (or
synthesized) getters/setters had the chance to be
added. This eliminates conflicts creating errors
of the form:
error: instance method '...' has incompatible result
types in different translation units ('X *' vs. 'id')
llvm-svn: 157956
|
|
|
|
|
|
| |
Fixed an issue with the current type being set to DIE_IS_BEING_PARSED in the m_die_to_type map by making sure the type pointer is valid.
llvm-svn: 157836
|
|
|
|
| |
llvm-svn: 157328
|
|
|
|
|
|
|
|
| |
(actually, mainly just hooked up support that was already
there). Added a test case, although it's expected to fail
right now unless you're using top-of-tree LLVM.
llvm-svn: 157220
|