Issue 97380
Summary Failing test debug-types-dwo-cross-reference.cpp.tmp
Labels new issue
Assignees
Reporter pauljohnston2009
    I am trying to build clang using the test-release.sh script https://github.com/llvm/llvm-project/blob/main/llvm/utils/release/test-release.sh , this was successful on clang 17.0.6 (with some file differences between phase 2 and 3). but no test failures, and check-all passed.

running as
```
 ./test-release.sh -j 5 -release $VERSION -use-ninja -final -triple x86_64-linux-gnu
```

however when doing the 18.1.8 version (or any of the 18 versions) it fails in the following test

https://github.com/llvm/llvm-project/blob/main/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp

```
******************** TEST 'lldb-shell :: SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 6: /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/clang --target=specify-a-target-or-use-a-_host-substitution /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp -target x86_64-pc-linux -fno-standalone-debug -g    -fdebug-types-section -gsplit-dwarf -c -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.o -DONE
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/clang --target=specify-a-target-or-use-a-_host-substitution /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp -target x86_64-pc-linux -fno-standalone-debug -g -fdebug-types-section -gsplit-dwarf -c -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.o -DONE
RUN: at line 8: /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/clang --target=specify-a-target-or-use-a-_host-substitution /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp -target x86_64-pc-linux -fno-standalone-debug -g    -fdebug-types-section -gsplit-dwarf -c -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.o -DTWO
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/clang --target=specify-a-target-or-use-a-_host-substitution /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp -target x86_64-pc-linux -fno-standalone-debug -g -fdebug-types-section -gsplit-dwarf -c -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.o -DTWO
RUN: at line 10: llvm-dwarfdump /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.dwo -debug-types -debug-info | /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck --check-prefix=ONEUNIT /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
+ llvm-dwarfdump /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.dwo -debug-types -debug-info
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck --check-prefix=ONEUNIT /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
RUN: at line 11: llvm-dwarfdump /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.dwo -debug-types -debug-info | /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck --check-prefix=ONEUNIT /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
+ llvm-dwarfdump /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.dwo -debug-types -debug-info
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck --check-prefix=ONEUNIT /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
RUN: at line 12: /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/ld.lld /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.o -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/ld.lld /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp1.o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp2.o -o /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp
ld.lld: warning: cannot find entry symbol _start; not setting start address
RUN: at line 13: /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/lldb --no-lldbinit -S /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/lit-lldb-init-quiet /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp -o "target var a b **b.a" -b | /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/lldb --no-lldbinit -S /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/lit-lldb-init-quiet /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp -o 'target var a b **b.a' -b
+ /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/FileCheck /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp
error: can't find global variable '**b.a'
/git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp:21:11: error: CHECK: expected string not found in input
// CHECK: (const A) **b.a = (a = 42)
          ^
<stdin>:10:2: note: scanning from here
}
 ^

Input file: <stdin>
Check file: /git/llvm-project/llvm/utils/release/final/llvm-project/lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp

-dump-input=help explains the following input dump.

Input was:
<<<<<<
 .
          .
          .
          5: Current executable set to '/git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp' (x86_64).
          6: (lldb) target var a b **b.a
          7: (const A) a = (a = 42)
          8: (const B) b = {
          9:  a = 0x00000000002031d8
         10: }
check:21      X error: no match found
>>>>>>

--

********************
```


The lldb version seems to be breaking the tests, if i use the old lldb it seems to work as expected.

eg. 

running the same command

```
lldb --no-lldbinit -S /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/lit-lldb-init-quiet /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp -o "target var a b **b.a" 
```

with the old version

```
$lldb --version
lldb version 17.0.6 (https://github.com/llvm/llvm-project revision 836ca5bbf7d6366df7c35ec9d1f235b1ebc9744e)
  clang revision 836ca5bbf7d6366df7c35ec9d1f235b1ebc9744e
  llvm revision 836ca5bbf7d6366df7c35ec9d1f235b1ebc9744e
$lldb --no-lldbinit -S /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/lit-lldb-init-quiet /git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp -o "target var a b **b.a"
(lldb)
(const A) a = (a = 42)
(const B) b = {
  a = 0x00000000002031d8
}
(const A) **b.a = (a = 42)

(lldb) target variable -r .*
(const A) a = (a = 42)
(const A *) ::a_ptr = 0x00000000002001c8
(const B) ::b = {
  a = 0x00000000002031d8
}

(lldb) p **b.a
(const A)  (a = 42)

```

with the newer version

```
$/git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/lldb --version
lldb version 18.1.0rc (https://github.com/llvm/llvm-project revision 4e0a0eae58f7a6998866719f7eb970096a2a52e9)
  clang revision 4e0a0eae58f7a6998866719f7eb970096a2a52e9
  llvm revision 4e0a0eae58f7a6998866719f7eb970096a2a52e9
$/git/git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/bin/lldb --no-lldbinit -S /git/git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/lit-lldb-init-quiet /git/git/llvm-project/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.0-final.obj/tools/lldb/test/Shell/SymbolFile/DWARF/x86/Output/debug-types-dwo-cross-reference.cpp.tmp -o "target var a b **b.a"
(lldb) target var a b **b.a
(const A) a = (a = 42)
(const B) b = {
  a = 0x00000000002031d8
}
error: can't find global variable '**b.a'

(lldb) target variable -r .*
(const A) a = (a = 42)
(const A *) ::a_ptr = 0x00000000002001c8
(const B) ::b = {
  a = 0x00000000002031d8
}

(lldb) p **b.a
(const A)  (a = 42)
```

note: the same variables exist, i think its just that the older version is more lax on the rules and just prints the _expression_, whereas the new version only looks for global variables that actually exist




_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to