]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Put "source" into DAP scope
authorTom Tromey <tromey@adacore.com>
Mon, 29 Apr 2024 18:57:11 +0000 (12:57 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 4 Jun 2024 16:36:34 +0000 (10:36 -0600)
I noticed a FIXME comment in the DAP code about adding a "source"
field to a scope.  This is easy to implement; I don't know why I
didn't do this originally.

gdb/python/lib/gdb/dap/scopes.py
gdb/testsuite/gdb.dap/ada-scopes.exp

index 8cd860141d619b704dbada42b59b79fe0404c4a3..09f440e087c76c8f9971aee78988daae2a7305fc 100644 (file)
@@ -17,6 +17,7 @@ import gdb
 
 from .frames import frame_for_id
 from .server import request
+from .sources import make_source
 from .startup import in_gdb_thread
 from .varref import BaseReference
 
@@ -93,7 +94,9 @@ class _ScopeReference(BaseReference):
         result["namedVariables"] = self.child_count()
         if self.line is not None:
             result["line"] = self.line
-            # FIXME construct a Source object
+        filename = self.frame.filename()
+        if filename is not None:
+            result["source"] = make_source(filename)
         return result
 
     def has_children(self):
index 12004f8fc32009dc48a84e17cc371626f83db3fe..4d895a5270d7c32d10c717f8b1428d4d2c5fdd6e 100644 (file)
@@ -59,6 +59,7 @@ set scopes [dict get [lindex $scopes 0] body scopes]
 # just in case something changes.
 lassign $scopes scope _ignore
 gdb_assert {[dict get $scope name] == "Locals"} "scope is locals"
+gdb_assert {[dict get $scope source name] == "prog.adb"} "scope has source"
 
 gdb_assert {[dict get $scope namedVariables] == 2} "two vars in scope"