DDavid Spickett[lldb][PDB] Fix message order in test case
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[lldb][test] Replace use of p with expression in Shell tests (NFC) In Shell tests, replace use of the p alias with the expression command. To avoid conflating tests of the alias with tests of the expression command, this patch canonicalizes to the use expression. See also D141539 which made the same change to API tests. Differential Revision: https://reviews.llvm.org/D146230 | 3 年前 | |
Re-land "[test] Split LLDB tests into API, Shell & Unit" The original patch got reverted because it broke check-lldb on a clean build. This fixes that. llvm-svn: 374201 | 6 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Fix function decl creation for class methods This is a split of D113724. Calling TypeSystemClang::AddMethodToCXXRecordType to create function decls for class methods. Differential Revision: https://reviews.llvm.org/D113930 | 4 年前 | |
Reland "[lldb][TypeSystemClang] Format pointers to member functions as eFormatHex" Before this patch, LLDB used to format pointers to members, such as, void (Foo::*pointer_to_member_func)() = &Foo::member_func; as eFormatBytes. E.g., (lldb) v pointer_to_member_func (void (Foo::*)()) $1 = 94 3f 00 00 01 00 00 00 00 00 00 00 00 00 00 00 This patch makes sure we format pointers to member functions the same way we do regular function pointers. After this patch we format member pointers as: (lldb) v pointer_to_member_func (void (Foo::*)()) ::pointer_to_member_func = 0x00000000000000000000000100003f94 Differential Revision: https://reviews.llvm.org/D145241 | 3 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Replace blocks.cpp with blocks.s so the test won't be affected by codegen changes. | 3 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Fix struct layout when it has anonymous unions. Previously, lldb mistook fields in anonymous union in a struct as the direct field of the struct, which causes lldb crashes due to multiple fields sharing the same offset in a struct. This patch fixes it. MSVC generated pdb doesn't have the debug info entity representing a anonymous union in a struct. It looks like the following: `` struct S { union { char c; int i; }; }; 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 Clang generated pdb is similar, though due to the [[ https://github.com/llvm/llvm-project/issues/57999 | bug ]], it's not more useful than the debug info above. But that's not very relavent, lldb should still be able to understand MSVC geneerated pdb. 0x1003 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: <no type> options: forward ref (= 0x1003) | has unique name | is nested, sizeof 0 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] - LF_NESTTYPE [name = , parent = 0x1003] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 options: contains nested class | has unique name, sizeof 4 0x1006 | LF_FIELDLIST [size = 28] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1007 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: 0x1006 options: has unique name | is nested | sealed, sizeof `` This patch delays the FieldDecl creation when travesing LF_FIELDLIST so we know if there are multiple fields are in the same offsets and are able to group them into different anonymous unions based on offsets. Nested anonymous union will be flatten into one anonymous union, because we simply don't have that info, but they are equivalent in terms of union layout. Differential Revision: https://reviews.llvm.org/D134849 | 3 年前 | |
[lldb] Require x86 for various NativePDB, Breakpad and Minidump tests These tests fail if you build without the x86 llvm backend. Either because they use an x86 triple or try to backtrace which requires some x86 knowledge to see all frames. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D100194 | 5 年前 | |
[LLDB][NativePDB] Fix function decl creation for class methods This is a split of D113724. Calling TypeSystemClang::AddMethodToCXXRecordType to create function decls for class methods. Differential Revision: https://reviews.llvm.org/D113930 | 4 年前 | |
[clang] retain type sugar in auto / template argument deduction This implements the following changes: * AutoType retains sugared deduced-as-type. * Template argument deduction machinery analyses the sugared type all the way down. It would previously lose the sugar on first recursion. * Undeduced AutoType will be properly canonicalized, including the constraint template arguments. * Remove the decltype node created from the decltype(auto) deduction. As a result, we start seeing sugared types in a lot more test cases, including some which showed very unfriendly type-parameter-*-* types. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith, #libc, ldionne Differential Revision: https://reviews.llvm.org/D110216 | 4 年前 | |
[lldb] Require x86 for various NativePDB, Breakpad and Minidump tests These tests fail if you build without the x86 llvm backend. Either because they use an x86 triple or try to backtrace which requires some x86 knowledge to see all frames. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D100194 | 5 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Fix struct layout when it has anonymous unions. Previously, lldb mistook fields in anonymous union in a struct as the direct field of the struct, which causes lldb crashes due to multiple fields sharing the same offset in a struct. This patch fixes it. MSVC generated pdb doesn't have the debug info entity representing a anonymous union in a struct. It looks like the following: `` struct S { union { char c; int i; }; }; 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 Clang generated pdb is similar, though due to the [[ https://github.com/llvm/llvm-project/issues/57999 | bug ]], it's not more useful than the debug info above. But that's not very relavent, lldb should still be able to understand MSVC geneerated pdb. 0x1003 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: <no type> options: forward ref (= 0x1003) | has unique name | is nested, sizeof 0 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] - LF_NESTTYPE [name = , parent = 0x1003] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 options: contains nested class | has unique name, sizeof 4 0x1006 | LF_FIELDLIST [size = 28] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1007 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: 0x1006 options: has unique name | is nested | sealed, sizeof `` This patch delays the FieldDecl creation when travesing LF_FIELDLIST so we know if there are multiple fields are in the same offsets and are able to group them into different anonymous unions based on offsets. Nested anonymous union will be flatten into one anonymous union, because we simply don't have that info, but they are equivalent in terms of union layout. Differential Revision: https://reviews.llvm.org/D134849 | 3 年前 | |
[LLDB][NativePDB] Global ctor and dtor should be global decls. This fixes a crash that mistaken global ctor/dtor as funciton methods. Differential Revision: https://reviews.llvm.org/D133446 | 3 年前 | |
[lldb] Fix globals-bss.cpp which was broken in https://reviews.llvm.org/D105055 -S replaced -s, so the test needs to be updated to use the new option | 5 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Fix PdbAstBuilder::GetParentDeclContext when ICF happens. Removed GetParentDeclContextForSymbol as this is not necesssary. We can get the demangled names from CVSymbol and then using it to create tag decl or namespace decl. This also fixed a bug when icf applied. Differential Revision: https://reviews.llvm.org/D133243 | 3 年前 | |
Speculative fix for windows test | 3 年前 | |
[lldb] Fix inline_sites.test Fixes lldb/test/Shell/SymbolFile/NativePDB/inline_sites.test to use the correct line number now that https://github.com/llvm/llvm-project/commit/f2f36c9b2955d2d742a198416f1178fd80303921 is causing the inline call site info to be taken into account. | 2 年前 | |
[lldb][test] Replace use of p with expression in Shell tests (NFC) In Shell tests, replace use of the p alias with the expression command. To avoid conflating tests of the alias with tests of the expression command, this patch canonicalizes to the use expression. See also D141539 which made the same change to API tests. Differential Revision: https://reviews.llvm.org/D146230 | 3 年前 | |
[lldb] Skip PDB and NativePDB tests with reproducers | 5 年前 | |
[FastISel] Flush local value map on every instruction Local values are constants or addresses that can't be folded into the instruction that uses them. FastISel materializes these in a "local value" area that always dominates the current insertion point, to try to avoid materializing these values more than once (per block). https://reviews.llvm.org/D43093 added code to sink these local value instructions to their first use, which has two beneficial effects. One, it is likely to avoid some unnecessary spills and reloads; two, it allows us to attach the debug location of the user to the local value instruction. The latter effect can improve the debugging experience for debuggers with a "set next statement" feature, such as the Visual Studio debugger and PS4 debugger, because instructions to set up constants for a given statement will be associated with the appropriate source line. There are also some constants (primarily addresses) that could be produced by no-op casts or GEP instructions; the main difference from "local value" instructions is that these are values from separate IR instructions, and therefore could have multiple users across multiple basic blocks. D43093 avoided sinking these, even though they were emitted to the same "local value" area as the other instructions. The patch comment for D43093 states: Local values may also be used by no-op casts, which adds the register to the RegFixups table. Without reversing the RegFixups map direction, we don't have enough information to sink these instructions. This patch undoes most of D43093, and instead flushes the local value map after(*) every IR instruction, using that instruction's debug location. This avoids sometimes incorrect locations used previously, and emits instructions in a more natural order. In addition, constants materialized due to PHI instructions are not assigned a debug location immediately; instead, when the local value map is flushed, if the first local value instruction has no debug location, it is given the same location as the first non-local-value-map instruction. This prevents PHIs from introducing unattributed instructions, which would either be implicitly attributed to the location for the preceding IR instruction, or given line 0 if they are at the beginning of a machine basic block. Neither of those consequences is good for debugging. This does mean materialized values are not re-used across IR instruction boundaries; however, only about 5% of those values were reused in an experimental self-build of clang. (*) Actually, just prior to the next instruction. It seems like it would be cleaner the other way, but I was having trouble getting that to work. This reapplies commits cf1c774d and dc35368c, and adds the modification to PHI handling, which should avoid problems with debugging under gdb. Differential Revision: https://reviews.llvm.org/D91734 | 5 年前 | |
[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 年前 | |
[lldb][PDB] Fix message order in test case Launch/stopped ordering was fixed by bd8f1068cad06b0f0342ac7ef351bf01c2e27322 but the Windows on Arm bot wasn't running at the time it landed. | 2 年前 | |
[lldb] Return StringRef from PluginInterface::GetPluginName There is no reason why this function should be returning a ConstString. While modifying these files, I also fixed several instances where GetPluginName and GetPluginNameStatic were returning different strings. I am not changing the return type of GetPluginNameStatic in this patch, as that would necessitate additional changes, and this patch is big enough as it is. Differential Revision: https://reviews.llvm.org/D111877 | 4 年前 | |
[LLDB][NativePDB] Fix image lookup by address image lookup -a doesn't work because the compilands list is always empty. Create CU at given index if doesn't exit. Differential Revision: https://reviews.llvm.org/D113821 | 4 年前 | |
[LLDB][NativePDB] Don't complete static members' types when completing a record type. UdtRecordCompleter shouldn't complete static members' types. static members' types are going to be completed when the types are called in SymbolFile::CompleteType. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121030 | 4 年前 | |
[LLDB][NativePDB] Check for missing type info to avoid crash. NativePDB often assumes that all debug info are available. This is one step to make it more pervasive. Differential Revision: https://reviews.llvm.org/D125844 | 4 年前 | |
[LLDB][NativePDB] ResolveSymbolContext should return the innermost block Before, it returns the outermost blocks if nested blocks have the same address range. That casuses lldb unable to find variables that are inside inner blocks. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D133601 | 3 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[lldb] Require x86 for various NativePDB, Breakpad and Minidump tests These tests fail if you build without the x86 llvm backend. Either because they use an x86 triple or try to backtrace which requires some x86 knowledge to see all frames. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D100194 | 5 年前 | |
[lldb/PDB] Make "native" pdb tests host-independent These test don't execute the binaries they build, and so they don't need to build for the host. By hardcoding the target, we don't have do xfail or skip them for targets which don't have the appropriate support in clang(-cl). | 6 年前 | |
[LLDB][NativePDB] Add support for S_DEFRANGE_REGISTER and S_DEFRANGE_SUBFIELD_REGISTER Differential Revision: https://reviews.llvm.org/D119508 | 4 年前 | |
[LLDB][NativePDB] Fix struct layout when it has anonymous unions. Previously, lldb mistook fields in anonymous union in a struct as the direct field of the struct, which causes lldb crashes due to multiple fields sharing the same offset in a struct. This patch fixes it. MSVC generated pdb doesn't have the debug info entity representing a anonymous union in a struct. It looks like the following: `` struct S { union { char c; int i; }; }; 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 Clang generated pdb is similar, though due to the [[ https://github.com/llvm/llvm-project/issues/57999 | bug ]], it's not more useful than the debug info above. But that's not very relavent, lldb should still be able to understand MSVC geneerated pdb. 0x1003 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: <no type> options: forward ref (= 0x1003) | has unique name | is nested, sizeof 0 0x1004 | LF_FIELDLIST [size = 40] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] - LF_NESTTYPE [name = , parent = 0x1003] 0x1005 | LF_STRUCTURE [size = 32] S unique name: .?AUS@@ vtable: <no type>, base list: <no type>, field list: 0x1004 options: contains nested class | has unique name, sizeof 4 0x1006 | LF_FIELDLIST [size = 28] - LF_MEMBER [name = c, Type = 0x0070 (char), offset = 0, attrs = public] - LF_MEMBER [name = i, Type = 0x0074 (int), offset = 0, attrs = public] 0x1007 | LF_UNION [size = 60] S::<unnamed-tag> unique name: .?AT<unnamed-type-$S1>@S@@ field list: 0x1006 options: has unique name | is nested | sealed, sizeof `` This patch delays the FieldDecl creation when travesing LF_FIELDLIST so we know if there are multiple fields are in the same offsets and are able to group them into different anonymous unions based on offsets. Nested anonymous union will be flatten into one anonymous union, because we simply don't have that info, but they are equivalent in terms of union layout. Differential Revision: https://reviews.llvm.org/D134849 | 3 年前 | |
Re-land "[test] Split LLDB tests into API, Shell & Unit" The original patch got reverted because it broke check-lldb on a clean build. This fixes that. llvm-svn: 374201 | 6 年前 |