""" Test lldb-dap stack trace response """ import dap_server from lldbsuite.test.decorators import * import lldbdap_testcase from lldbsuite.test.lldbtest import * class TestDAP_subtleFrames(lldbdap_testcase.DAPTestCaseBase): @add_test_categories(["libc++"]) def test_subtleFrames(self): """ Internal stack frames (such as the ones used by `std::function`) are marked as "subtle". """ program = self.getBuildArtifact("a.out") self.build_and_launch(program) source = "main.cpp" self.set_source_breakpoints(source, [line_number(source, "BREAK HERE")]) self.continue_to_next_stop() frames = self.get_stackFrames() for f in frames: if "__function" in f["name"]: self.assertEqual(f["presentationHint"], "subtle") self.assertTrue(any(f.get("presentationHint") == "subtle" for f in frames))