blob: 9a0df8642403fd0bfedbe03de53f40a484a1aeec [file] [edit]
# A function whose DWARF DW_AT_linkage_name is present but is NOT a mangled
# name -- it differs from DW_AT_name. This happens on WebAssembly, where
# wasi-libc renames `main` to its `__main_argc_argv` argv-passing wrapper:
# the DWARF keeps DW_AT_name "main" but records DW_AT_linkage_name
# "__main_argc_argv". Here the same shape is produced with an asm() rename.
#
# LLDB must display the source name (DW_AT_name, "impl") rather than the raw,
# un-demanglable linkage name, while still keeping the linkage name as the
# symbol so a breakpoint set by either name resolves.
# RUN: yaml2obj %s -o %t
# RUN: %lldb %t \
# RUN: -o "image lookup -v -n impl" \
# RUN: -o "breakpoint set -n impl" \
# RUN: -o exit 2>&1 | FileCheck %s
# The function is displayed by its source name, with the linkage name kept as
# the symbol; a breakpoint set by the source name resolves and displays it too.
# CHECK: Function: {{.*}}name = "impl", mangled = "renamed_export"
# CHECK: Breakpoint 1: where = {{.*}}`impl
--- !WASM
FileHeader:
Version: 0x1
Sections:
- Type: TYPE
Signatures:
- Index: 0
ParamTypes:
- I32
ReturnTypes:
- I32
- Type: FUNCTION
FunctionTypes: [ 0 ]
- Type: MEMORY
Memories:
- Minimum: 0x1
- Type: GLOBAL
Globals:
- Index: 0
Type: I32
Mutable: true
InitExpr:
Opcode: I32_CONST
Value: 65536
- Type: EXPORT
Exports:
- Name: memory
Kind: MEMORY
Index: 0
- Name: renamed_export
Kind: FUNCTION
Index: 0
- Type: CODE
Functions:
- Index: 0
Locals:
- Type: I32
Count: 1
Body: 23808080800041106B21012001200036020C200128020C41016A0F0B
- Type: CUSTOM
Name: .debug_abbrev
Payload: 011101250E1305030E10171B0E110112060000022E011101120640186E0E030E3A0B3B0B271949133F1900000305000218030E3A0B3B0B49130000042400030E3E0B0B0B000000
- Type: CUSTOM
Name: .debug_info
Payload: 5500000004000000000004012D0000001D001F0000000000000015000000020000001F00000002020000001F00000004ED00019F020000001A0000000104510000000302910C00000000010451000000000411000000050400
- Type: CUSTOM
Name: .debug_str
Payload: 780072656E616D65645F6578706F727400696E74002F746D7000696D706C002F746D702F72656E616D652E6300636C616E672076657273696F6E2032322E312E302D776173692D73646B202868747470733A2F2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A65637420343433346461626236393931363835366238323466363861363462303239633637313735653533322900
- Type: CUSTOM
Name: .debug_line
Payload: 3F000000040020000000010101FB0E0D0001010101000000010000010072656E616D652E6300000000000005020200000015051A0A084A051C065805133C0202000101
- Type: CUSTOM
Name: name
FunctionNames:
- Index: 0
Name: renamed_export
GlobalNames:
- Index: 0
Name: __stack_pointer
...