File: dwo-debug-file-search-path-symlink-relative-compdir.c

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (31 lines) | stat: -rw-r--r-- 1,462 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// Check that LLDB uses the paths in target.debug-file-search-paths to find
/// split DWARF files with a relative DW_AT_comp_dir set, when the program file
/// has been moved and/or we're executing it from another directory. Even when
/// the provided search path is actually a symlink to the real location.
// UNSUPPORTED: system-darwin
// UNSUPPORTED: system-windows
// RUN: rm -rf %t.compdir/ %t.e/
// RUN: mkdir -p %t.compdir/a/b/c/d/
// RUN: cp %s %t.compdir/a/b/c/d/main.c
// RUN: cd %t.compdir/a/b/
/// The produced DWO is named c/d/main-main.dwo, with a DW_AT_comp_dir of a/b.
// RUN: %clang_host -g -gsplit-dwarf -fdebug-prefix-map=%t.compdir=. c/d/main.c -o c/d/main
// RUN: cd ../../..
/// Move only the program, leaving the DWO file in place.
// RUN: mv %t.compdir/a/b/c/d/main %t.compdir/a/
/// Create a symlink to the compliation dir, to use instead of the real path.
// RUN: ln -s %t.compdir %t.symlink_to_compdir
/// Debug it from yet another path.
// RUN: mkdir -p %t.e/
// RUN: cd %t.e
/// DWO should be found by following using symlink + a/b/ + c/d/main-main.dwo.
// RUN: %lldb --no-lldbinit %t.compdir/a/main \
// RUN:   -O "settings append target.debug-file-search-paths %t.symlink_to_compdir" \
// RUN:   -o "b main" -o "run" -o "p num" --batch 2>&1 | FileCheck %s

// CHECK-NOT: warning: {{.*}}main unable to locate separate debug file (dwo, dwp). Debugging will be degraded.
// CHECK: (int) 5

int num = 5;

int main(void) { return 0; }