If llvm-symbolizer finds a malformed command, it echoes it to the standard output. New versions of binutils (starting from 2.39) allow to specify an address by a symbols. Implementation of this feature in llvm-symbolizer makes the current reaction on invalid input inappropriate. Almost any invalid command may be treated as a symbol name, so the right reaction should be "symbol not found" in such case. The exception are commands that are recognized but have incorrect syntax, like "FILE:FILE:". The utility must produce descriptive diagnostic for such input and route it to the stderr. This change implements the new reaction on invalid input and is a prerequisite for implementation of symbol lookup in llvm-symbolizer. Differential Revision: https://reviews.llvm.org/D157210
26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
# Use address that can't fit in a 64-bit number. Show that llvm-symbolizer
|
|
# simply treats it as an unknown symbol.
|
|
RUN: llvm-symbolizer --obj=%p/Inputs/addr.exe 0x10000000000000000 | FileCheck --check-prefix=LARGE-ADDR %s
|
|
|
|
LARGE-ADDR-NOT: {{.}}
|
|
LARGE-ADDR: ??
|
|
LARGE-ADDR-NEXT: ??:0:0
|
|
LARGE-ADDR-EMPTY:
|
|
LARGE-ADDR-NOT: {{.}}
|
|
|
|
RUN: echo '"some text"' '"some text2"' > %t.rsp
|
|
RUN: echo -e 'some text\nsome text2\n' > %t.inp
|
|
|
|
# Test bad input address values, via stdin, command line and response file.
|
|
RUN: llvm-symbolizer --obj=%p/Inputs/addr.exe < %t.inp | FileCheck --check-prefix=BAD-INPUT %s
|
|
RUN: llvm-symbolizer --obj=%p/Inputs/addr.exe "some text" "some text2" | FileCheck --check-prefix=BAD-INPUT %s
|
|
RUN: llvm-symbolizer --obj=%p/Inputs/addr.exe @%t.rsp | FileCheck --check-prefix=BAD-INPUT %s
|
|
|
|
# Test bad input address values for the GNU-compatible version.
|
|
RUN: llvm-addr2line --obj=%p/Inputs/addr.exe < %t.inp | FileCheck --check-prefix=BAD-INPUT %s
|
|
RUN: llvm-addr2line --obj=%p/Inputs/addr.exe "some text" "some text2" | FileCheck --check-prefix=BAD-INPUT %s
|
|
RUN: llvm-addr2line --obj=%p/Inputs/addr.exe @%t.rsp | FileCheck --check-prefix=BAD-INPUT %s
|
|
|
|
BAD-INPUT: ??
|
|
BAD-INPUT-NEXT: ??:0
|