[3/4] gdb/dap: use breakpoint fullname to resolve source
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
If the breakpoint has a fullname, use that as the source path when
resolving the breakpoint source information. This is consistent with
other callers of make_source which also use "fullname" if it exists (see
e.g. DAPFrameDecorator which returns the symtab's fullname).
---
gdb/python/lib/gdb/dap/breakpoint.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Comments
>>>>> Gregory Anders via Gdb-patches <gdb-patches@sourceware.org> writes:
> If the breakpoint has a fullname, use that as the source path when
> resolving the breakpoint source information. This is consistent with
> other callers of make_source which also use "fullname" if it exists (see
> e.g. DAPFrameDecorator which returns the symtab's fullname).
Thank you.
How did you find this? I'm wondering if a test case is possible.
Tom
On Fri, 01 Sep 2023 13:08 -0600, Tom Tromey wrote:
>How did you find this? I'm wondering if a test case is possible.
I use the 'substitute-path' option, and noticed that the path in
source.path uses the "compiled" source path (before translating with
'substitute-path') while loc.fullname contains the path after
translating.
Any hints or ideas on how to include a test case for that?
@@ -108,6 +108,9 @@ def _breakpoint_descriptor(bp):
loc = bp.locations[0]
if loc.source:
(filename, line) = loc.source
+ if loc.fullname is not None:
+ filename = loc.fullname
+
result.update(
{
"source": make_source(filename, os.path.basename(filename)),
@@ -118,9 +121,6 @@ def _breakpoint_descriptor(bp):
if loc.address:
result["instructionReference"] = hex(loc.address),
- path = loc.fullname
- if path is not None:
- result["source"]["path"] = path
return result