From 4b09134a09ea6663850091c6a8da614cf3902fe1 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 24 Apr 2024 09:53:55 -0600 Subject: [PATCH] Simplify DAP make_source callers A couple callers of make_source call basename by hand. Rather than add another caller like this, I thought it would be better to put this ability into make_source itself. --- gdb/python/lib/gdb/dap/breakpoint.py | 3 +-- gdb/python/lib/gdb/dap/bt.py | 4 +--- gdb/python/lib/gdb/dap/sources.py | 8 ++++++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/gdb/python/lib/gdb/dap/breakpoint.py b/gdb/python/lib/gdb/dap/breakpoint.py index 1da754e4ddc..e60265b2f69 100644 --- a/gdb/python/lib/gdb/dap/breakpoint.py +++ b/gdb/python/lib/gdb/dap/breakpoint.py @@ -13,7 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os import re from contextlib import contextmanager @@ -116,7 +115,7 @@ def _breakpoint_descriptor(bp): result.update( { - "source": make_source(filename, os.path.basename(filename)), + "source": make_source(filename), "line": line, } ) diff --git a/gdb/python/lib/gdb/dap/bt.py b/gdb/python/lib/gdb/dap/bt.py index e0c2e2a1751..668bcc7ce23 100644 --- a/gdb/python/lib/gdb/dap/bt.py +++ b/gdb/python/lib/gdb/dap/bt.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os - # This is deprecated in 3.9, but required in older versions. from typing import Optional @@ -98,7 +96,7 @@ def _backtrace(thread_id, levels, startFrame, stack_format): name += ", module " + objfile.username filename = current_frame.filename() if filename is not None: - newframe["source"] = make_source(filename, os.path.basename(filename)) + newframe["source"] = make_source(filename) newframe["name"] = name frames.append(newframe) # Note that we do not calculate totalFrames here. Its absence diff --git a/gdb/python/lib/gdb/dap/sources.py b/gdb/python/lib/gdb/dap/sources.py index ee3464db679..ad0c913c8c1 100644 --- a/gdb/python/lib/gdb/dap/sources.py +++ b/gdb/python/lib/gdb/dap/sources.py @@ -32,16 +32,20 @@ _id_map = {} @in_gdb_thread -def make_source(fullname, filename): +def make_source(fullname, filename=None): """Return the Source for a given file name. FULLNAME is the full name. This is used as the key. - FILENAME is the base name. + FILENAME is the base name; if None (the default), then it is + computed from FULLNAME. """ global _source_map if fullname in _source_map: result = _source_map[fullname] else: + if filename is None: + filename = os.path.basename(fullname) + result = { "name": filename, "path": fullname, -- 2.11.4.GIT