Full paths in DAP stackTrace responses
authorTom Tromey <tromey@adacore.com>
Mon, 24 Jul 2023 14:48:00 +0000 (08:48 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 1 Aug 2023 18:52:26 +0000 (12:52 -0600)
commit65403bd0ed22f7c26f972449403c97ff5e998b04
tree79c54fb2d40b66f38d14436d35b1228e26613ccf
parentf131a5790812c3ca69a4fcd9cd2b9ac15b29d181
Full paths in DAP stackTrace responses

Vladimir Makaev noticed that, in some cases, a DAP stackTrace response
would include a relative path name for the "path" component.

This patch changes the frame decorator code to add a new DAP-specific
decorator, and changes the DAP entry point to frame filters to use it.
This decorator prefers the symtab's full name, and does not fall back
to the solib's name.

I'm not entirely happy with this patch, because if a user frame filter
uses FrameDecorator, it may still do the wrong thing.  It would be
better to have frame filters return symtab-like objects instead, or to
have a separate method to return the full path to the source file.

I also tend to think that the solib fallback behavior of
FrameDecorator is a mistake.  If this is ever needed, it seems to me
that it should be a separate method.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30665
gdb/python/lib/gdb/FrameDecorator.py
gdb/python/lib/gdb/frames.py