| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[lldb/cmake] Implicitly pass arguments to llvm_add_library (#142583) If we're not touching them, we don't need to do anything special to pass them along -- with one important caveat: due to how cmake arguments work, the implicitly passed arguments need to be specified before arguments that we handle. This isn't particularly nice, but the alternative is enumerating all arguments that can be used by llvm_add_library and the macros it calls (it also relies on implicit passing of some arguments to llvm_process_sources). | 1 年前 | |
Ensure newlines at the end of files (NFC) | 3 年前 | |
[NFC][TargetParser] Remove llvm/ADT/Triple.h I also ran git clang-format to get the headers in the right order for the new location, which has changed the order of other headers in two files. | 3 年前 | |
[lldb] Remove unused local variables (NFC) (#138457) | 1 年前 | |
[lldb] Add missing StringExtras.h includes In preparation for removing the #include "llvm/ADT/StringExtras.h" from the header to source file of llvm/Support/Error.h, first add in all the missing includes that were previously included transitively through this header. This is fixing all files missed in b0abd4893fa1, 39d8e6e22cd1, and a11efd49266f. Differential Revision: https://reviews.llvm.org/D154775 | 3 年前 | |
[lldb] Sink StreamBuffer into lldbUtility lldbUtility seems like a more suitable place for StreamBuffer. Differential Revision: https://reviews.llvm.org/D157463 | 2 年前 | |
[LLDB][NativePDB] Switch to use DWARFLocationList. Before, NativePDB uses scoped range as a workaround for value range, that causes problems (e.g. a variable's value can only have one range, but usually a variable's value is located at different address ranges, each at different locations, in optimized build). This patch let NativePDB switch to DWARFLocationList so a variable's value can be described at multiple non-overlapped address ranges and each range maps to a location. Because overlapping ranges exists, here's peference when choosing ranges: 1. Always prefer whole value locations. Suppose a variable size is 8 bytes, one record is that for range [1, 5) first 4 bytes is at ecx, and another record is that for range [2, 8) the 8 bytes value is at rdx. This results: [1, 2) has first 4 bytes at ecx, [2, 8) has the whole value at rdx. 2. Always prefer the locations parsed later. Suppose first record is that for range [1, 5) value is at ecx, second record is that for range [2, 6) value is at eax. This results: [1, 2) -> ecx, [2, 6) -> eax. Differential Revision: https://reviews.llvm.org/D130796 | 3 年前 | |
Reland "[LLDB][NativePDB] Create functions with mangled name" (#161678) Relands #149701 which was reverted in https://github.com/llvm/llvm-project/commit/185ae5cdc695248b58ae017508cc764c19bee5b7 because it broke demangling of Itanium symbols on i386. The last commit in this PR adds the fix for this (discussed in #160930). On x86 environments, the prefix of __cdecl functions will now be removed to match DWARF. I opened #161676 to discuss this for the other calling conventions. | 10 个月前 | |
[lldb][TypeSystem] Enable colored AST dump (#86159) This patch causes the various AST dump commands ( target modules dump ast/target dump typesystem) to be color-highlighted. I added a bool show_color parameter to SymbolFile::DumpClangAST and TypeSystem::Dump. In TypeSystemClang I temporarily sets the getShowColors flag on the owned Clang AST (using an RAII helper) for the duration of the AST dump. We use Debugger::GetUseColors to decide whether to color the AST dump. | 10 个月前 | |
[lldb] Sink StreamBuffer into lldbUtility lldbUtility seems like a more suitable place for StreamBuffer. Differential Revision: https://reviews.llvm.org/D157463 | 2 年前 | |
[NFC][TargetParser] Remove llvm/ADT/Triple.h I also ran git clang-format to get the headers in the right order for the new location, which has changed the order of other headers in two files. | 3 年前 | |
[lldb] Use std::optional instead of llvm::Optional (NFC) This patch replaces (llvm::|)Optional< with std::optional<. I'll post a separate patch to clean up the "using" declarations, #include "llvm/ADT/Optional.h", etc. This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 | 3 年前 | |
[lldb] Remove remaining uses of llvm::Optional (NFC) This patch removes the unused "using" declarations, updates comments, and removes #include "llvm/ADT/Optional.h". This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 | 3 年前 | |
[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 | 6 年前 | |
[lldb] Update header guards to be consistent and compliant with LLVM (NFC) LLDB has a few different styles of header guards and they're not very consistent because things get moved around or copy/pasted. This patch unifies the header guards across LLDB and converts everything to match LLVM's style. Differential revision: https://reviews.llvm.org/D74743 | 6 年前 | |
[LLDB][NativePDB] Consolidate simple types (#163209) This aligns the simple types created by the native plugin with the ones from DIA as well as LLVM and the original cvdump. - A few type names weren't handled when creating the LLDB Type name (e.g. short) - 64-bit integers were created as (u)int64_t and are now created as (unsigned) long long (matches DIA) - 128-bit integers (only supported by clang-cl) weren't created as types (they have SimpleTypeKind::(U)Int128Oct) - All complex types had the same name - now they have _Complex <float-type> Some types like SimpleTypeKind::Float48 can't be tested because they can't be created in C++. | 9 个月前 | |
[LLDB][NativePDB] Allow type lookup in namespaces (#149876) Previously, type lookup for types in namespaces didn't work with the native PDB plugin, because FindTypes would only look for types whose base name was equal to their full name. PDB/CodeView does not store the base names in the TPI stream, but the types have their full name (e.g. std::thread instead of thread). So findRecordsByName would only return types in the top level namespace. This PR changes the lookup to go through all types and check their base name. As that could be a bit expensive, the names are first cached (similar to the function lookup in the DIA PDB plugin). Potential types are checked with TypeQuery::ContextMatches. To be able to handle anonymous namespaces, I changed TypeQuery::ContextMatches. The [TypeQuery constructor](https://github.com/llvm/llvm-project/blob/9ad7edef4276207ca4cefa6b39d11145f4145a72/lldb/source/Symbol/Type.cpp#L76-L79) inserts all name components as CompilerContextKind::AnyDeclContext. To skip over anonymous namespaces, ContextMatches checked if a component was empty and exactly of kind Namespace. For our query, the last check was always false, so we never skipped anonymous namespaces. DWARF doesn't have this problem, as it [constructs the context outside](https://github.com/llvm/llvm-project/blob/abe93d9d7e891a2a6596ddb0c6324280137c89dc/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp#L154-L160) and has proper information about namespaces. I'm not fully sure if my change is correct and that it doesn't break other users of TypeQuery. This enables type lookup <type> to work on types in namespaces. However, expressions don't work with this yet, because FindNamespace is unimplemented for native PDB. | 1 年前 | |
[LLDB][NativePDB] Estimate symbol sizes (#165727) In #165604, a test was skipped on Windows, because the native PDB plugin didn't set sizes on symbols. While the test isn't compiled with debug info, it's linked with -gdwarf, causing a PDB to be created on Windows. This PDB will only contain the public symbols (written by the linker) and section information. The symbols themselves don't have a size, however the DIA SDK sets a size for them. It seems like, for these data symbols, the size given from DIA is the distance to the next symbol (or the section end). This PR implements the naive approach for the native plugin. The main difference is in function/code symbols. There, DIA searches for a corresponding S_GPROC32 which have a "code size" that is sometimes slightly smaller than the difference to the next symbol. | 9 个月前 | |
[LLDB][NativePDB] Create simple types from function arguments and return types (#163621) When creating all types in a compilation unit, simple types (~> primitive and pointer types) that were only used in function arguments or return types weren't created as LLDB Types. With this PR, they're created when creating the function/method types. This makes it possible to run the SymbolFile/PDB/typedefs.test with both plugins. | 9 个月前 | |
[LLDB][NativePDB] Add non-overlapping fields in root struct (#166243) When anonymous unions are used in a struct or vice versa, their fields are merged into the parent record when using PDB. LLDB tries to recreate the original definition of the record _with_ the anonymous unions/structs. For tagged unions (like std::optional) where the tag followed the anonymous union, the result was suboptimal: cpp // input: struct Foo { union { Bar b; char c; }; bool tag; }; // reconstructed: struct Foo { union { Bar b; struct { char c; bool tag; }; }; }; Once the algorithm is in some nested union, it can't get out. In the above case, we can get to the correct reconstructed record if we always add fields that don't overlap others in the root struct. So when we see tag, we'll see that it comes after all other fields, so it's possible to add it in the root Foo. | 9 个月前 | |
[lldb] Use std::optional instead of llvm::Optional (NFC) This patch replaces (llvm::|)Optional< with std::optional<. I'll post a separate patch to clean up the "using" declarations, #include "llvm/ADT/Optional.h", etc. This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 3 年前 |