19from typing
import Optional
21from .server
import capability, request
22from .sources
import decode_source
23from .startup
import in_gdb_thread
27def _find_lines(source, start_line, end_line):
28 filename = decode_source(source)
30 for entry
in gdb.execute_mi(
"-symbol-list-lines", filename)[
"lines"]:
32 if line >= start_line
and line <= end_line:
34 return {
"breakpoints": [{
"line": x}
for x
in sorted(lines)]}
44@request("breakpointLocations")
45@capability("supportsBreakpointLocationsRequest")
46def breakpoint_locations(*, source, line: int, endLine: Optional[int] =
None, **extra):
49 return _find_lines(source, line, endLine)