[all-commits] [llvm/llvm-project] 548968: [lldb][Target] Clear selected frame index after a ...

Michael Buch via All-commits all-commits at lists.llvm.org
Mon Sep 22 16:52:43 PDT 2025


  Branch: refs/heads/release/21.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 54896838ca5e1f69f0f3040fe6847546db0463d4
      https://github.com/llvm/llvm-project/commit/54896838ca5e1f69f0f3040fe6847546db0463d4
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-09-22 (Mon, 22 Sep 2025)

  Changed paths:
    M lldb/include/lldb/Target/StackFrameList.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StackFrameList.cpp

  Log Message:
  -----------
  [lldb][Target] Clear selected frame index after a StopInfo::PerformAction (#133078)

The motivation for this patch is that
`StopInfo::GetSuggestedStackFrameIndex` would not take effect for
`InstrumentationRuntimeStopInfo` (which we plan to implement in
https://github.com/llvm/llvm-project/pull/133079). This was happening
because the instrumentation runtime plugins would run utility
expressions as part of the stop that would set the
`m_selected_frame_idx`. This means `SelectMostRelevantFrame` was never
called, and we would not be able to report the selected frame via the
`StopInfo` object.

This patch makes sure we clear the `m_selected_frame_idx` to allow
`GetSuggestedStackFrameIndex` to take effect, regardless of what the
frame recognizers choose to do.

(cherry picked from commit 39572f5e9168b1b44c2f9078494616fed8752086)


  Commit: faedeb1a242079c7fdea59d8b8487ab9d4c31bb9
      https://github.com/llvm/llvm-project/commit/faedeb1a242079c7fdea59d8b8487ab9d4c31bb9
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-09-22 (Mon, 22 Sep 2025)

  Changed paths:
    M lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h
    M lldb/source/Target/InstrumentationRuntimeStopInfo.cpp
    M lldb/test/API/functionalities/asan/TestMemoryHistory.py
    M lldb/test/API/functionalities/asan/TestReportData.py
    M lldb/test/API/functionalities/ubsan/basic/TestUbsanBasic.py

  Log Message:
  -----------
  [lldb][Instrumentation] Set selected frame to outside sanitizer libraries (#133079)

When hitting a sanitizer breakpoint, LLDB currently displays the frame
in the sanitizer dylib (which we usually don't have debug-info for),
which isn't very helpful to the user. A more helpful frame to display
would be the first frame not in the sanitizer library (we have a
[similar heuristic when we trap inside
libc++](https://github.com/llvm/llvm-project/pull/108825)). This patch
does just that, by implementing the `GetSuggestedStackFrameIndex` API

Depends on https://github.com/llvm/llvm-project/pull/133078

(cherry picked from commit 879f40ab041b31fa73b9b25e4ec9e06e810bc767)


  Commit: f5ba88341e7c4f7427e33c8237c07c3c5f1e189c
      https://github.com/llvm/llvm-project/commit/f5ba88341e7c4f7427e33c8237c07c3c5f1e189c
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-09-22 (Mon, 22 Sep 2025)

  Changed paths:
    M lldb/test/API/functionalities/tsan/basic/TestTsanBasic.py

  Log Message:
  -----------
  [lldb][test] TestTsanBasic.py: fix function name assertion

Since https://github.com/llvm/llvm-project/pull/133079 we no longer stop
in the stanitizer library when hitting a sanitizer breakpoint. Adjust
the test accordingly.

(cherry picked from commit bdf645bb9b509b60bdb6a71d865b4f8999187977)


  Commit: 2c8cb316b5d2b0121d7d364d30b86b4310fb0809
      https://github.com/llvm/llvm-project/commit/2c8cb316b5d2b0121d7d364d30b86b4310fb0809
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-09-22 (Mon, 22 Sep 2025)

  Changed paths:
    M lldb/test/API/functionalities/asan/TestMemoryHistory.py
    M lldb/test/API/functionalities/asan/TestReportData.py
    M lldb/test/API/functionalities/tsan/basic/TestTsanBasic.py
    M lldb/test/API/functionalities/ubsan/basic/TestUbsanBasic.py

  Log Message:
  -----------
  [lldb][test] Only assert function name is in user-code on Darwin platforms

The frame recognizer for the instrumentation runtimes (added in
https://github.com/llvm/llvm-project/pull/133079) only triggers on Darwin
for `libclang_rt`. Adjust the tests accordingly.

(cherry picked from commit 5326b3b176e82191b18ffc368118b36e0103af3d)


Compare: https://github.com/llvm/llvm-project/compare/f4907049285c...2c8cb316b5d2

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