Skip to content

Conversation

@charles-zablit
Copy link
Contributor

@charles-zablit charles-zablit commented Jan 19, 2026

This patch deactivates the TestHiddenFrameMarkers test on Windows.

#167550 introduced a new marker in front of hidden frames in the lldb backtrace printer. Hidden frames do not seem to be working on Windows.

#176738 is the tracking issue for the hidden frames on Windows.

@llvmbot
Copy link
Member

llvmbot commented Jan 19, 2026

@llvm/pr-subscribers-lldb

Author: Charles Zablit (charles-zablit)

Changes

This patch deactivates the TestHiddenFrameMarkers test on Windows.

#167550 introduced a new marker in front of hidden frames in the lldb backtrace printer. Hidden frames do not seem to be working on Windows.


Full diff: https://github.com/llvm/llvm-project/pull/176736.diff

1 Files Affected:

  • (modified) lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py (+3-1)
diff --git a/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py b/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py
index 178d97fce17c2..c7f62861d65b5 100644
--- a/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py
+++ b/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py
@@ -9,6 +9,7 @@
 
 
 class HiddenFrameMarkerTest(TestBase):
+    @skipIfWindows
     @unicode_test
     def test_hidden_frame_markers(self):
         """Test that hidden frame markers are rendered in backtraces"""
@@ -51,7 +52,8 @@ def test_hidden_frame_markers(self):
             ],
         )
 
-    def test_hidden_frame_markers(self):
+    @skipIfWindows
+    def test_hidden_frame_markers_setting_deactivation(self):
         """
         Test that hidden frame markers are not rendered in backtraces when
         mark-hidden-frames is set to false

@github-actions
Copy link

🐧 Linux x64 Test Results

  • 33259 tests passed
  • 505 tests skipped
  • 1 test failed

Failed Tests

(click on a test name to see its output)

lldb-api

lldb-api.terminal/hidden_frame_markers/TestHiddenFrameMarkers.py
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --arch x86_64 --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/terminal/hidden_frame_markers -p TestHiddenFrameMarkers.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 23.0.0git (https://github.com/llvm/llvm-project revision cf2c02d487b1510dae9db5cb03b4e64275a03664)
  clang revision cf2c02d487b1510dae9db5cb03b4e64275a03664
  llvm revision cf2c02d487b1510dae9db5cb03b4e64275a03664
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc

--
Command Output (stderr):
--
UNSUPPORTED: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_dsym (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_dsym) (test case does not fall in any category of interest for this run) 
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_dwarf (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_dwarf)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_dwo (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_dwo)
UNSUPPORTED: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_setting_deactivation_dsym (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_setting_deactivation_dsym) (test case does not fall in any category of interest for this run) 
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_setting_deactivation_dwarf (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_setting_deactivation_dwarf)
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_hidden_frame_markers_setting_deactivation_dwo (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_setting_deactivation_dwo)
======================================================================
FAIL: test_hidden_frame_markers_setting_deactivation_dwarf (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_setting_deactivation_dwarf)
   Test that hidden frame markers are not rendered in backtraces when
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1844, in test_method
    return attrvalue(self)
           ^^^^^^^^^^^^^^^
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py", line 66, in test_hidden_frame_markers_setting_deactivation
    self.expect(
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2569, in expect
    self.fail(log_msg)
AssertionError: Ran command:
"bt"

Got output:
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
   * frame #0: 0x00005a6a5e35a524 a.out`target() at main.cpp:5:7
  ﹍ frame #1: 0x00005a6a5e35a511 a.out`main::$_0::operator()(this=0x00007ffe713b8aa8) const at main.cpp:9:35
  ﹉ frame #7: 0x00005a6a5e35a545 a.out`std::__1::function<void ()>::operator()(this= Lambda in File main.cpp at Line 9) const at function.h:754:10
     frame #8: 0x00005a6a5e35a1b5 a.out`main at main.cpp:10:3
     frame #9: 0x00007ba40694d1ca libc.so.6`___lldb_unnamed_symbol_2a150 + 122
     frame #10: 0x00007ba40694d28b libc.so.6`__libc_start_main + 139
     frame #11: 0x00005a6a5e35a0c5 a.out`_start + 37

Expecting sub string: "  * frame #0:" (was found)
Expecting sub string: "    frame #1:" (was not found)
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
======================================================================
FAIL: test_hidden_frame_markers_setting_deactivation_dwo (TestHiddenFrameMarkers.HiddenFrameMarkerTest.test_hidden_frame_markers_setting_deactivation_dwo)
   Test that hidden frame markers are not rendered in backtraces when
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1844, in test_method
    return attrvalue(self)
           ^^^^^^^^^^^^^^^
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/terminal/hidden_frame_markers/TestHiddenFrameMarkers.py", line 66, in test_hidden_frame_markers_setting_deactivation
    self.expect(
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2569, in expect
    self.fail(log_msg)
AssertionError: Ran command:
"bt"

Got output:
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
   * frame #0: 0x00005c8c5c4e6524 a.out`target() at main.cpp:5:7
  ﹍ frame #1: 0x00005c8c5c4e6511 a.out`main::$_0::operator()(this=0x00007ffe3fb144e8) const at main.cpp:9:35
  ﹉ frame #7: 0x00005c8c5c4e6545 a.out`std::__1::function<void ()>::operator()(this= Lambda in File main.cpp at Line 9) const at function.h:754:10
     frame #8: 0x00005c8c5c4e61b5 a.out`main at main.cpp:10:3
     frame #9: 0x00007cdc2f8631ca libc.so.6`___lldb_unnamed_symbol_2a150 + 122
     frame #10: 0x00007cdc2f86328b libc.so.6`__libc_start_main + 139
     frame #11: 0x00005c8c5c4e60c5 a.out`_start + 37

Expecting sub string: "  * frame #0:" (was found)
Expecting sub string: "    frame #1:" (was not found)
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 6 tests in 6.679s

FAILED (failures=2, skipped=2)

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@da-viper
Copy link
Contributor

It looks more like a libcxx category test instead of skipIfWindows. I assume this will also fail on linux if using libstdc++ since we don't have libstdc++ frame recogniser.

@Michael137
Copy link
Member

Michael137 commented Jan 19, 2026

FWIW, to keep the tests (which in any way rely on a specific STL) as hermetic as possible we usually don't include the STL headers unless we're specifically testing them for, e.g., data-formatters, frame recognizers.

You're not really testing the frame recognizers themselves, but just the fact that hidden frames get marked.

We might be able to use scripted frame providers to artificially set up a scenario where some of the frames are hidden (see lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py). But if that gets too fiddly, you could implement some dummy functions in the std::__1 namespace and simulate the presence of libc++ that way (not great, but not the worst). E.g., std::__1::__my_func gets hidden, but std::__1::my_func wouldn't.

It would be unfortunate to lose coverage for something that is possibly system dependent just because a user/buildbot didn't happen to build libc++ locally (this is only required on Darwin, so can definitely happen).

@charles-zablit
Copy link
Contributor Author

I will try that, thanks! I ended up reverting the patch in the meantime until I come up with a proper fix for the test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants