From 7b4a5561e4bfc251f35c3bdf14f5a780cd3695a8 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 25 Jul 2023 10:55:14 -0600 Subject: [PATCH] Don't supply DAP 'path' for non-file shared libraries The DAP 'module' event may include a 'path' component. I noticed that this is supplied even when the module in question does not come from a file. This patch only emits this field when the objfile corresponds to a real file. No test case, because I wasn't sure how to write a portable one. However, it's clear from gdb.log on Linux: {"type": "event", "event": "module", "body": {"reason": "new", "module": {"id": "system-supplied DSO at 0x7ffff7fc4000", "name": "system-supplied DSO at 0x7ffff7fc4000"}}, "seq": 21} Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30676 --- gdb/python/lib/gdb/dap/modules.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gdb/python/lib/gdb/dap/modules.py b/gdb/python/lib/gdb/dap/modules.py index 6ba613bcd2b..1aec1cba0ac 100644 --- a/gdb/python/lib/gdb/dap/modules.py +++ b/gdb/python/lib/gdb/dap/modules.py @@ -36,11 +36,13 @@ def make_module(objf): """Return a Module representing the objfile OBJF. The objfile must pass the 'is_module' test.""" - return { + result = { "id": module_id(objf), "name": objf.username, - "path": objf.filename, } + if objf.is_file: + result["path"] = objf.filename + return result @in_gdb_thread -- 2.30.2