gdb/dap: check for breakpoint source before unpacking
authorGregory Anders <greg@gpanders.com>
Fri, 1 Sep 2023 21:02:17 +0000 (16:02 -0500)
committerTom Tromey <tromey@adacore.com>
Wed, 20 Sep 2023 16:59:32 +0000 (10:59 -0600)
commit155f5df517c962f1317e119a6a5ca317e1202996
treea059ad9901fc19f17c476c132d5cde33c3fac5f0
parent4abf53c99115dad84720be64432ab4bd933b9df7
gdb/dap: check for breakpoint source before unpacking

Not all breakpoints have a source location. For example, a breakpoint
set on a raw address will have only the "address" field populated, but
"source" will be None, which leads to a RuntimeError when attempting to
unpack the filename and line number.

Before attempting to unpack the filename and line number from the
breakpoint, ensure that the source information is not None. Also
populate the source and line information separately from the
"instructionReference" field, so that breakpoints that include only an
address are still included.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/python/lib/gdb/dap/breakpoint.py
gdb/testsuite/gdb.dap/bt-nodebug.exp