| """ | |
| 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)) |