[all-commits] [llvm/llvm-project] b3f2a8: [lldb] Fix library step-in when the binary is link...

Ebuka Ezike via All-commits all-commits at lists.llvm.org
Mon Sep 14 08:41:53 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b3f2a866c206f2976cb2c3b551f6f3e3e261516d
      https://github.com/llvm/llvm-project/commit/b3f2a866c206f2976cb2c3b551f6f3e3e261516d
  Author: Ebuka Ezike <e_ezike at apple.com>
  Date:   2026-09-14 (Mon, 14 Sep 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/configuration.py
    M lldb/packages/Python/lldbsuite/test/dotest.py
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    A lldb/test/API/lang/c/step-through-trampoline-with-symbol/Makefile
    A lldb/test/API/lang/c/step-through-trampoline-with-symbol/TestStepThroughTrampolineWithSymbol.py
    A lldb/test/API/lang/c/step-through-trampoline-with-symbol/add.c
    A lldb/test/API/lang/c/step-through-trampoline-with-symbol/add.h
    A lldb/test/API/lang/c/step-through-trampoline-with-symbol/main.c

  Log Message:
  -----------
  [lldb] Fix library step-in when the binary is linked with MOLD (#178695)

The mold linker adds a function symbol to the symbol table (.symtab) for
every shared library exported function.
So if we try to step into a library, lldb will fail because the symbol
at the address is not a trampline function.

Example:
```cpp
// lib.c
int lib_add(int a, int b);
```
when we link the library to an executable, mold will create the normal
trampoline functions in the .plt section but add an extra symbol in
symbol table `lib_add$plt`.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list