30 lines
913 B
Python
30 lines
913 B
Python
"""
|
|
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))
|