#
2e83b2e9 |
| 19-Oct-2018 |
Fangrui Song <maskray@google.com> |
Use llvm::{all,any,none}_of instead std::{all,any,none}_of. NFC
llvm-svn: 344774
|
#
8aa69e99 |
| 09-Oct-2018 |
Adrian Prantl <aprantl@apple.com> |
llvm-dwarfdump: Extend --name to also search DW_AT_linkage_name.
rdar://problem/45132695
llvm-svn: 344079
|
#
d969abde |
| 09-Oct-2018 |
Adrian Prantl <aprantl@apple.com> |
Add missing space
llvm-svn: 344064
|
#
10981cc8 |
| 28-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343317
- asan buildbots are breaking and I need to investigate the issue
llvm-svn: 343341
|
#
21f2955b |
| 28-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Reapply changes reverted by r343235
- Add fix so that all code paths that create DWARFContext with an ObjectFile initialise the target architecture in the context - Add an assert that the Arch is
Reapply changes reverted by r343235
- Add fix so that all code paths that create DWARFContext with an ObjectFile initialise the target architecture in the context - Add an assert that the Arch is known in the Dwarf CallFrameString method
llvm-svn: 343317
show more ...
|
#
8e5676b1 |
| 27-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343192 as an ubsan build is currently failing
llvm-svn: 343235
|
#
f6844b30 |
| 27-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Reapply changes reverted in r343114, lldb patch to follow shortly
llvm-svn: 343192
|
#
0cac726a |
| 27-Sep-2018 |
Fangrui Song <maskray@google.com> |
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb
Subscr
llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)
Summary: The convenience wrapper in STLExtras is available since rL342102.
Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb
Subscribers: MatzeB, sanjoy, arsenm, dschuff, mehdi_amini, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, eraman, aheejin, kbarton, JDevlieghere, javed.absar, gbedwell, jrtc27, mgrang, atanasyan, steven_wu, george.burgess.iv, dexonsmith, kristina, jsji, llvm-commits
Differential Revision: https://reviews.llvm.org/D52573
llvm-svn: 343163
show more ...
|
#
77aaa220 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343112 as CallFrameString API change has broken lldb builds
llvm-svn: 343114
|
#
03ad8812 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
[AArch64] - Return address signing dwarf support
- Reapply r343089 with a fix for DebugInfo/Sparc/gnu-window-save.ll
llvm-svn: 343112
|
#
00b88bbc |
| 26-Sep-2018 |
Hans Wennborg <hans@hanshq.net> |
Revert r343089 "[AArch64] - Return address signing dwarf support"
This caused the DebugInfo/Sparc/gnu-window-save.ll test to fail.
> Functions that have signed return addresses need additional dwar
Revert r343089 "[AArch64] - Return address signing dwarf support"
This caused the DebugInfo/Sparc/gnu-window-save.ll test to fail.
> Functions that have signed return addresses need additional dwarf support: > - After signing the LR, and before authenticating it, the LR register is in a > state the is unusable by a debugger or unwinder > - To account for this a new directive, .cfi_negate_ra_state, is added > - This directive says the signed state of the LR register has now changed, > i.e. unsigned -> signed or signed -> unsigned > - This directive has the same CFA code as the SPARC directive GNU_window_save > (0x2d), adding a macro to account for multiply defined codes > - This patch matches the gcc implementation of this support: > https://patchwork.ozlabs.org/patch/800271/ > > Differential Revision: https://reviews.llvm.org/D50136
llvm-svn: 343103
show more ...
|
#
f755e687 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
[AArch64] - Return address signing dwarf support
Functions that have signed return addresses need additional dwarf support: - After signing the LR, and before authenticating it, the LR register is i
[AArch64] - Return address signing dwarf support
Functions that have signed return addresses need additional dwarf support: - After signing the LR, and before authenticating it, the LR register is in a state the is unusable by a debugger or unwinder - To account for this a new directive, .cfi_negate_ra_state, is added - This directive says the signed state of the LR register has now changed, i.e. unsigned -> signed or signed -> unsigned - This directive has the same CFA code as the SPARC directive GNU_window_save (0x2d), adding a macro to account for multiply defined codes - This patch matches the gcc implementation of this support: https://patchwork.ozlabs.org/patch/800271/
Differential Revision: https://reviews.llvm.org/D50136
llvm-svn: 343089
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
96545db3 |
| 02-Aug-2018 |
Paul Robinson <paul.robinson@sony.com> |
[DebugInfo/DWARF] Remove redundant iterator type. NFC
llvm-svn: 338759
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3 |
|
#
4b896eb7 |
| 13-Jun-2018 |
Pavel Labath <labath@google.com> |
Fix "Optional" is ambiguous error on some bots
llvm-svn: 334580
|
#
4adc88ed |
| 13-Jun-2018 |
Pavel Labath <labath@google.com> |
[DWARF/AccelTable] Remove getDIESectionOffset for DWARF v5 entries
Summary: This method was not correct for entries in DWO files as it assumed it could just add up the CU and DIE offsets to get the
[DWARF/AccelTable] Remove getDIESectionOffset for DWARF v5 entries
Summary: This method was not correct for entries in DWO files as it assumed it could just add up the CU and DIE offsets to get the absolute DIE offset. This is not correct for the DWO files, as here the CU offset will reference the skeleton unit, whereas the DIE offset will be the offset in the full unit in the DWO file.
Unfortunately, this means that we are not able to determine the absolute DIE offset using the information in the .debug_names section alone, which means we have to offload some of this work to the users of this class.
To demonstrate how this can be done, I've added/fixed the ability to lookup entries using accelerator tables in DWO files in llvm-dwarfdump. To make this happen, I've needed to make two extra changes in other classes: - made the DWARFContext method to lookup a CU based on the section offset public. I've needed this functionality to lookup a CU, and this seems like a useful thing in general. - made DWARFUnit::getDWOId call extractDIEsIfNeeded. Before this, the DWOId was filled in only if the root DIE happened to be parsed before we called the accessor. Since the lazy parsing is supposed to happen under the hood, calling extractDIEsIfNeeded seems appropriate.
Reviewers: JDevlieghere, aprantl, dblaikie
Subscribers: mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D48009
llvm-svn: 334578
show more ...
|
Revision tags: llvmorg-6.0.1-rc2 |
|
#
59870af6 |
| 31-May-2018 |
Pavel Labath <labath@google.com> |
DWARFAcceleratorTable: fix equal_range iterators
Summary: Both (Apple and DWARF5) implementations of the iterators had bugs which resulted in crashes if one attempted to iterate through the accelera
DWARFAcceleratorTable: fix equal_range iterators
Summary: Both (Apple and DWARF5) implementations of the iterators had bugs which resulted in crashes if one attempted to iterate through the accelerator tables all the way.
For the Apple tables, the issue was that we did not clear the DataOffset field when we reached the end, which made our iterator compare unequal to the "end" iterator. For the Dwarf5 tables, the problem was that we incremented the CurrentIndex pointer and then used the incremented (possibly invalid) pointer to check whether we have reached the end of the index list.
The reason these bugs went undetected is because their only user (dwarfdump) only ever searched for the first match. Besides allowing us to test this fix, changing llvm-dwarfdump --find to display all matches seems like a good improvement (it makes the behavior consistent with the --name option), so I change llvm-dwarfdump to do that.
The existing tests would be sufficient to test this fix with the new llvm-dwarfdump behavior, but I add a special test that demonstrates that the tool indeed displays multiple results. The find.test test needed to be tweaked a bit as the tool now does not print the ".debug_info contents" header (also consistent with how --name works).
Reviewers: JDevlieghere, aprantl, dblaikie
Subscribers: mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D47543
llvm-svn: 333635
show more ...
|
#
27126f52 |
| 24-May-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[Support] Add color cl category.
This commit adds a color category so tools can document this option and enables it for dwarfdump and dsymuttil.
rdar://problem/40498996
llvm-svn: 333176
|
#
bd088560 |
| 08-May-2018 |
Fangrui Song <maskray@google.com> |
[DebugInfo] Accept `S` in augmentation strings in CIE.
glibc libc.a(sigaction.o) compiled from sysdeps/unix/sysv/linux/x86_64/sigaction.c uses "zRS".
llvm-svn: 331738
|
Revision tags: llvmorg-6.0.1-rc1 |
|
#
197194b6 |
| 13-Apr-2018 |
Rui Ueyama <ruiu@google.com> |
Define InitLLVM to do common initialization all at once.
We have a few functions that virtually all command wants to run on process startup/shutdown. This patch adds InitLLVM class to do that all at
Define InitLLVM to do common initialization all at once.
We have a few functions that virtually all command wants to run on process startup/shutdown. This patch adds InitLLVM class to do that all at once, so that we don't need to copy-n-paste boilerplate code to each llvm command's main() function.
Differential Revision: https://reviews.llvm.org/D45602
llvm-svn: 330046
show more ...
|
Revision tags: llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1 |
|
#
47c3472c |
| 09-Mar-2018 |
Pavel Labath <labath@google.com> |
[DebugInfo/AccelTable] Fix inconsistency in getDIEOffset implementations
Summary: Even though the getDIEOffset offset function was common for the two accelerator table implementations, it was doing
[DebugInfo/AccelTable] Fix inconsistency in getDIEOffset implementations
Summary: Even though the getDIEOffset offset function was common for the two accelerator table implementations, it was doing two different things: for the Apple tables, it was returning the die offset relative to the start of the section, whereas for DWARF v5 tables, it was relative to the start of the CU.
I resolve this by renaming the function to getDIESectionOffset to make it obvious what the function returns, and change the DWARF implementation to return the section offset. I also keep the CU-relative accessor, but only in the DWARF implementation (there is no way to get this information for the Apple tables). This was not caught by existing tests because the hand-written inputs also erroneously used section offsets instead of CU-relative ones.
While looking at this, I noticed that the Apple implementation was not fully correct either -- the header contains a DIEOffsetBase field, which should be added to offsets encoded with the DW_FORM_ref*** family, but this was not being used. This went unnoticed because all current writers set this field to zero anyway. I fix this as well and add a hand-written test which demonstrates the issue.
Reviewers: JDevlieghere, dblaikie
Subscribers: aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D44202
llvm-svn: 327116
show more ...
|
Revision tags: llvmorg-6.0.0 |
|
#
725c035f |
| 24-Feb-2018 |
Pavel Labath <labath@google.com> |
Fix build breakage from r326003
- an ambiguous reference to Optional<T> in llvm-dwarfdump.cpp (fixed with an explicit prefix). - a missing base class initialization in Entry copy constructor (fixe
Fix build breakage from r326003
- an ambiguous reference to Optional<T> in llvm-dwarfdump.cpp (fixed with an explicit prefix). - a missing base class initialization in Entry copy constructor (fixed by using the implicitly default constructor, which is possible after some changes which were done during review).
llvm-svn: 326006
show more ...
|
#
d99072bc |
| 24-Feb-2018 |
Pavel Labath <labath@google.com> |
Implement equal_range for the DWARF v5 accelerator table
Summary: This patch implements the name lookup functionality of the .debug_names accelerator table and hooks it up to "llvm-dwarfdump -find".
Implement equal_range for the DWARF v5 accelerator table
Summary: This patch implements the name lookup functionality of the .debug_names accelerator table and hooks it up to "llvm-dwarfdump -find". To make the interface of the two kinds of accelerator tables more consistent, I've created an abstract "DWARFAcceleratorTable::Entry" class, which provides a consistent interface to access the common functionality of the table entries (such as getting the die offset, die tag, etc.). I've also modified the apple table to vend entries conforming to this interface.
Reviewers: JDevlieghere, aprantl, probinson, dblaikie
Subscribers: vleschuk, clayborg, echristo, llvm-commits
Differential Revision: https://reviews.llvm.org/D43067
llvm-svn: 326003
show more ...
|
Revision tags: llvmorg-6.0.0-rc3 |
|
#
fba754a9 |
| 08-Feb-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[dwarfdump] Normalize input path.
Before this patch, llvm-dwarfdump would reject `bundel.dSYM/` as input, while `bundel.dSYM` was accepted. The reason is that `path::extension()` returns an empty st
[dwarfdump] Normalize input path.
Before this patch, llvm-dwarfdump would reject `bundel.dSYM/` as input, while `bundel.dSYM` was accepted. The reason is that `path::extension()` returns an empty string for the former, leading to the argument not being recognized as a dSYM bundle.
llvm-svn: 324621
show more ...
|
Revision tags: llvmorg-6.0.0-rc2 |
|
#
3c9a918c |
| 29-Jan-2018 |
Pavel Labath <labath@google.com> |
[DebugInfo] Basic .debug_names dumping support
Summary: This commit renames DWARFAcceleratorTable to AppleAcceleratorTable to free up the first name as an interface for the different accelerator tab
[DebugInfo] Basic .debug_names dumping support
Summary: This commit renames DWARFAcceleratorTable to AppleAcceleratorTable to free up the first name as an interface for the different accelerator tables. Then I add a DWARFDebugNames class for the dwarf5 table.
Presently, the only common functionality of the two classes is the dump() method, because this is the only method that was necessary to implement dwarfdump -debug-names; and because the rest of the AppleAcceleratorTable interface does not directly transfer to the dwarf5 tables (the main reason for that is that the present interface assumes the tables are homogeneous, but the dwarf5 tables can have different keys associated with each entry).
I expect to make the common interface richer as I add more functionality to the new class (and invent a way to represent it in generic way).
In terms of sharing the implementation, I found the format of the two tables sufficiently different to frustrate any attempts to have common parsing or dumping code, so presently the implementations share just low level code for formatting dwarf constants.
Reviewers: vleschuk, JDevlieghere, clayborg, aprantl, probinson, echristo, dblaikie
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42297
llvm-svn: 323638
show more ...
|
#
9b36fd25 |
| 22-Jan-2018 |
Pavel Labath <labath@google.com> |
Rename DwarfAcceleratorTable to AppleAcceleratorTable. NFC
This frees up the first name to be used as an base class for the apple table and the dwarf5 .debug_names accel table. The rename was split
Rename DwarfAcceleratorTable to AppleAcceleratorTable. NFC
This frees up the first name to be used as an base class for the apple table and the dwarf5 .debug_names accel table. The rename was split off from D42297 (adding of debug_names support), which is still under review.
llvm-svn: 323113
show more ...
|