|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
b74a01a8 |
| 12-Jul-2022 |
Zequan Wu <[email protected]> |
Reland "[LLDB][NFC] Decouple dwarf location table from DWARFExpression."
This reland 227dffd0b6d78154516ace45f6ed28259c7baa48 and 562c3467a6738aa89203f72fc1d1343e5baadf3c with failed api tests fixed
Reland "[LLDB][NFC] Decouple dwarf location table from DWARFExpression."
This reland 227dffd0b6d78154516ace45f6ed28259c7baa48 and 562c3467a6738aa89203f72fc1d1343e5baadf3c with failed api tests fixed by keeping function base file addres in DWARFExpressionList.
show more ...
|
| #
e4c5bca5 |
| 07-Jul-2022 |
Jonas Devlieghere <[email protected]> |
Revert "[LLDB][NFC] Decouple dwarf location table from DWARFExpression."
This reverts commit 227dffd0b6d78154516ace45f6ed28259c7baa48 and its follow up 562c3467a6738aa89203f72fc1d1343e5baadf3c becau
Revert "[LLDB][NFC] Decouple dwarf location table from DWARFExpression."
This reverts commit 227dffd0b6d78154516ace45f6ed28259c7baa48 and its follow up 562c3467a6738aa89203f72fc1d1343e5baadf3c because it breaks a bunch of tests on GreenDragon:
https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/45155/
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
227dffd0 |
| 13-May-2022 |
Zequan Wu <[email protected]> |
[LLDB][NFC] Decouple dwarf location table from DWARFExpression.
Differential Revision: https://reviews.llvm.org/D125509
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
9bd72b5c |
| 04-Mar-2022 |
Shafik Yaghmour <[email protected]> |
[LLDB] Remove cases of using namespace std
We had using namespace std; sprinkled around several source files and tests.
Differential Revision: https://reviews.llvm.org/D120966
|
| #
ae869d44 |
| 03-Mar-2022 |
Shafik Yaghmour <[email protected]> |
[LLDB] Remove cases of using namespace llvm:: from header file
We have using namespace llvm::dwarf in dwarf.h header globally. Replacing that with a using namespace within lldb_private::dwarf and mo
[LLDB] Remove cases of using namespace llvm:: from header file
We have using namespace llvm::dwarf in dwarf.h header globally. Replacing that with a using namespace within lldb_private::dwarf and moving to a using namespace lldb_private::dwarf in .cpp files and fully qualified names in the few header files.
Differential Revision: https://reviews.llvm.org/D120836
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
76e47d48 |
| 26-May-2021 |
Raphael Isemann <[email protected]> |
[lldb][NFC] Use C++ versions of the deprecated C standard library headers
The C headers are deprecated so as requested in D102845, this is replacing them all with their (not deprecated) C++ equivale
[lldb][NFC] Use C++ versions of the deprecated C standard library headers
The C headers are deprecated so as requested in D102845, this is replacing them all with their (not deprecated) C++ equivalent.
Reviewed By: shafik
Differential Revision: https://reviews.llvm.org/D103084
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc1 |
|
| #
6d19c84c |
| 20-May-2021 |
Jan Kratochvil <[email protected]> |
[lldb] Improve invalid DWARF DW_AT_ranges error reporting
In D98289#inline-939112 @dblaikie said: Perhaps this could be more informative about what makes the range list index of 0 invalid? "inde
[lldb] Improve invalid DWARF DW_AT_ranges error reporting
In D98289#inline-939112 @dblaikie said: Perhaps this could be more informative about what makes the range list index of 0 invalid? "index 0 out of range of range list table (with range list base 0xXXX) with offset entry count of XX (valid indexes 0-(XX-1))" Maybe that's too verbose/not worth worrying about since this'll only be relevant to DWARF producers trying to debug their DWARFv5, maybe no one will ever see this message in practice. Just a thought.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D102851
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
cf806d91 |
| 09-Mar-2021 |
Jan Kratochvil <[email protected]> |
[lldb] Fix DWARF-5 DW_FORM_implicit_const (used by GCC)
Differential Revision: https://reviews.llvm.org/D98197
|
|
Revision tags: llvmorg-12.0.0-rc3 |
|
| #
1b8fdaac |
| 02-Mar-2021 |
Jan Kratochvil <[email protected]> |
[nfc] [lldb] DWARFDebugInfoEntry::Extract(): reindent
|
| #
61c29321 |
| 02-Mar-2021 |
Jan Kratochvil <[email protected]> |
[lldb] DWARFDebugInfoEntry::Extract(): Print an error for unsupported DW_FORM_*
|
| #
4096ae06 |
| 02-Mar-2021 |
Jan Kratochvil <[email protected]> |
[lldb] Support DWARF-5 DW_FORM_line_strp (used by GCC)
LLDB has been failing on binaries produced by new GCC 11.0 with -gdwarf-5.
Differential Revision: https://reviews.llvm.org/D97721
|
|
Revision tags: llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
| #
274afac9 |
| 05-Jan-2021 |
David Blaikie <[email protected]> |
lldb: Add support for DW_AT_ranges on DW_TAG_subprograms
gcc already produces debug info with this form -freorder-block-and-partition clang produces this sort of thing with -fbasic-block-sections an
lldb: Add support for DW_AT_ranges on DW_TAG_subprograms
gcc already produces debug info with this form -freorder-block-and-partition clang produces this sort of thing with -fbasic-block-sections and with a coming-soon tweak to use ranges in DWARFv5 where they can allow greater reuse of debug_addr than the low/high_pc forms.
This fixes the case of breaking on a function name, but leaves broken printing a variable - a follow-up commit will add that and improve the test case to match.
Differential Revision: https://reviews.llvm.org/D94063
show more ...
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
24f07531 |
| 09-Nov-2020 |
Jan Kratochvil <[email protected]> |
[lldb] Fix DW_AT_decl_file from DW_AT_specification from a different CU
This would be reproducible in future DWZ category of the testsuite as: Failed Tests (1): lldb-api :: python_api/symbol-c
[lldb] Fix DW_AT_decl_file from DW_AT_specification from a different CU
This would be reproducible in future DWZ category of the testsuite as: Failed Tests (1): lldb-api :: python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
Differential Revision: https://reviews.llvm.org/D91014
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
4515d35f |
| 09-Jun-2020 |
Jan Kratochvil <[email protected]> |
[lldb] Fix DW_TAG_GNU_call_site-DW_AT_low_pc as produced by GCC
D80519 <https://reviews.llvm.org/D80519> added support for `DW_TAG_GNU_call_site` but Bug 45886 <https://bugs.llvm.org/show_bug.cgi?id
[lldb] Fix DW_TAG_GNU_call_site-DW_AT_low_pc as produced by GCC
D80519 <https://reviews.llvm.org/D80519> added support for `DW_TAG_GNU_call_site` but Bug 45886 <https://bugs.llvm.org/show_bug.cgi?id=45886> found one case did not work.
There is:
0x000000b1: DW_TAG_GNU_call_site DW_AT_low_pc (0x000000000040111e) DW_AT_abstract_origin (0x000000cc "a") ... 0x000000cc: DW_TAG_subprogram DW_AT_name ("a") DW_AT_prototyped (true) DW_AT_low_pc (0x0000000000401109) ^^^^^^^^^^^^ - here it did overwrite the 'low_pc' variable containing value 0x40111e we wanted DW_AT_high_pc (0x0000000000401114) DW_AT_frame_base (DW_OP_call_frame_cfa) DW_AT_GNU_all_call_sites (true)
DW_TAG_GNU_call_site attributes order as produced by GCC: 0x000000b1: DW_TAG_GNU_call_site DW_AT_low_pc (0x000000000040111e) DW_AT_abstract_origin (0x000000cc "a")
clang produces the attributes in opposite order: 0x00000064: DW_TAG_GNU_call_site DW_AT_abstract_origin (0x0000002a "a") DW_AT_low_pc (0x0000000000401146)
Differential Revision: https://reviews.llvm.org/D81334
show more ...
|
| #
fd31e60b |
| 09-Jun-2020 |
Jan Kratochvil <[email protected]> |
[nfc] [lldb] Reduce GetAttributes's depth parameter usage
Clean the code up a bit for D81334.
Differential Revision: https://reviews.llvm.org/D81423
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
283658c9 |
| 04-May-2020 |
Pavel Labath <[email protected]> |
[lldb/DWARF] Remove dead code in DWARFDebugInfoEntry
The dumping code is not used by anyone, and is a source of inconsistencies with the llvm dwarf parser, as dumping is implemented at a different l
[lldb/DWARF] Remove dead code in DWARFDebugInfoEntry
The dumping code is not used by anyone, and is a source of inconsistencies with the llvm dwarf parser, as dumping is implemented at a different level (DWARFDie) there.
show more ...
|
| #
7cfa74fc |
| 20-Apr-2020 |
Pavel Labath <[email protected]> |
[lldb/DWARF] Trust CU DW_AT_low/high_pc information when building address tables
Summary: The code in DWARFCompileUnit::BuildAddressRangeTable tries hard to avoid relying on DW_AT_low/high_pc for co
[lldb/DWARF] Trust CU DW_AT_low/high_pc information when building address tables
Summary: The code in DWARFCompileUnit::BuildAddressRangeTable tries hard to avoid relying on DW_AT_low/high_pc for compile unit range information, and this logic is a big cause of llvm/lldb divergence in the lowest layers of dwarf parsing code.
The implicit assumption in that code is that this information (as opposed to DW_AT_ranges) is unreliable. However, I have not been able to verify that assumption. It is definitely not true for all present-day compilers (gcc, clang, icc), and it was also not the case for the historic compilers that I have been able to get a hold of (thanks Matt Godbolt).
All compiler included in my research either produced correct DW_AT_ranges or .debug_aranges entries, or they produced no DW_AT_hi/lo pc at all. The detailed findings are: - gcc >= 4.4: produces DW_AT_ranges and .debug_aranges - 4.1 <= gcc < 4.4: no DW_AT_ranges, no DW_AT_high_pc, .debug_aranges present. The upper version range here is uncertain as godbolt.org does not have intermediate versions. - gcc < 4.1: no versions on godbolt.org - clang >= 3.5: produces DW_AT_ranges, and (optionally) .debug_aranges - 3.4 <= clang < 3.5: no DW_AT_ranges, no DW_AT_high_pc, .debug_aranges present. - clang <= 3.3: no DW_AT_ranges, no DW_AT_high_pc, no .debug_aranges - icc >= 16.0.1: produces DW_AT_ranges - icc < 16.0.1: no functional versions on godbolt.org (some are present but fail to compile)
Based on this analysis, I believe it is safe to start trusting DW_AT_low/high_pc information in dwarf as well as remove the code for manually reconstructing range information by traversing the DIE structure, and just keep the line table fallback. The only compilers where this will change behavior are pre-3.4 clangs, which are almost 7 years old now. However, the functionality should remain unchanged because we will be able to reconstruct this information from the line table, which seems to be needed for some line-tables-only scenarios anyway (haven't researched this too much, but at least some compilers seem to emit DW_AT_ranges even in these situations).
In addition, benchmarks showed that for these compilers computing the ranges via line tables is noticably faster than doing so via the DIE tree.
Other advantages include simplifying the code base, removing some untested code (the only test changes are recent tests with overly reduced synthetic dwarf), and increasing llvm convergence.
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D78489
show more ...
|
| #
ce779004 |
| 16-Apr-2020 |
Davide Italiano <[email protected]> |
[DWARF] Rename a function and comment it for clarity.
Pointed out by Adrian.
|
| #
d51b38f1 |
| 08-Apr-2020 |
Davide Italiano <[email protected]> |
[DWARF] Not all the constant variables are "static".
Fixes rdar://problem/61402307
Differential Revision: https://reviews.llvm.org/D77698
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2 |
|
| #
1d11d5f6 |
| 06-Feb-2020 |
Jan Kratochvil <[email protected]> |
[lldb] [NFC] Refactor GetDWARFDeclContext to return DWARFDeclContext
Suggested by Pavel Labath.
Differential Revision: https://reviews.llvm.org/D73787
|
| #
edc3f4f0 |
| 31-Jan-2020 |
Jan Kratochvil <[email protected]> |
[NFC] [lldb] Unindent DWARFDebugInfoEntry::GetDWARFDeclContext
Reduce code indentation level.
|
| #
6dd01635 |
| 31-Jan-2020 |
Jan Kratochvil <[email protected]> |
[lldb] Revert refactorization from: Move non-DWARF code: DWARFUnit -> SymbolFileDWARF
Reverting part of commit 789beeeca3cdeecc00cd731c940e52effdd7c7df.
Its DWARFDebugInfoEntry::GetDWARFDeclContext
[lldb] Revert refactorization from: Move non-DWARF code: DWARFUnit -> SymbolFileDWARF
Reverting part of commit 789beeeca3cdeecc00cd731c940e52effdd7c7df.
Its DWARFDebugInfoEntry::GetDWARFDeclContext() refactorization for return value is now adding it in opposite order.
show more ...
|
| #
789beeec |
| 31-Jan-2020 |
Jan Kratochvil <[email protected]> |
[lldb] Move non-DWARF code: DWARFUnit -> SymbolFileDWARF
This patchset is removing non-DWARF code from DWARFUnit for better future merge with LLVM DWARF as discussed with @labath.
Differential revi
[lldb] Move non-DWARF code: DWARFUnit -> SymbolFileDWARF
This patchset is removing non-DWARF code from DWARFUnit for better future merge with LLVM DWARF as discussed with @labath.
Differential revision: https://reviews.llvm.org/D70646
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc1 |
|
| #
80814287 |
| 24-Jan-2020 |
Raphael Isemann <[email protected]> |
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp ----------------------------------------
[lldb][NFC] Fix all formatting errors in .cpp file headers
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp -------------------------------------------------===// ``` However in LLDB most of our source files have arbitrary changes to this format and these changes are spreading through LLDB as folks usually just use the existing source files as templates for their new files (most notably the unnecessary editor language indicator `-*- C++ -*-` is spreading and in every review someone is pointing out that this is wrong, resulting in people pointing out that this is done in the same way in other files).
This patch removes most of these inconsistencies including the editor language indicators, all the different missing/additional '-' characters, files that center the file name, missing trailing `===//` (mostly caused by clang-format breaking the line).
Reviewers: aprantl, espindola, jfb, shafik, JDevlieghere
Reviewed By: JDevlieghere
Subscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D73258
show more ...
|
| #
b7af1bfa |
| 17-Jan-2020 |
Pavel Labath <[email protected]> |
[lldb/DWARF] Simplify DWARFDebugInfoEntry::LookupAddress
Summary: This method was doing a lot more than it's only caller needed (DWARFDIE::LookupDeepestBlock) needed, so I inline it into the caller,
[lldb/DWARF] Simplify DWARFDebugInfoEntry::LookupAddress
Summary: This method was doing a lot more than it's only caller needed (DWARFDIE::LookupDeepestBlock) needed, so I inline it into the caller, and remove any code which is not actually used. This includes code for searching for the deepest function, and the code for working around incomplete DW_AT_low_pc/high_pc attributes on a compile unit DIE (modern compiler get this right, and this method is called on function DIEs anyway).
This also improves our llvm consistency, as llvm::DWARFDebugInfoEntry is just a very simple struct with no nontrivial logic.
Reviewers: JDevlieghere, aprantl
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72920
show more ...
|