aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.dap/ada-arrays
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-07-21 09:34:21 -0600
committerTom Tromey <tromey@adacore.com>2023-09-05 11:10:24 -0600
commit708cedb722130686607d086085bac963a406580a (patch)
tree20a3a121fd069b974a74bc683b4da3da4e921bc1 /gdb/testsuite/gdb.dap/ada-arrays
parent59668c9d8c2fd10a521b06f2183b054498421d66 (diff)
downloadbinutils-708cedb722130686607d086085bac963a406580a.zip
binutils-708cedb722130686607d086085bac963a406580a.tar.gz
binutils-708cedb722130686607d086085bac963a406580a.tar.bz2
Handle array- and string-like values in no-op pretty printers
This changes the no-op pretty printers -- used by DAP -- to handle array- and string-like objects known by the gdb core. Two new tests are added, one for Ada and one for Rust.
Diffstat (limited to 'gdb/testsuite/gdb.dap/ada-arrays')
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/cstuff.c22
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/main.adb24
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/pck.adb21
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/pck.ads51
4 files changed, 118 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c b/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c
new file mode 100644
index 0000000..af87082
--- /dev/null
+++ b/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c
@@ -0,0 +1,22 @@
+/* Copyright 2023 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+void
+c_procedure (int x)
+{
+ /* STOP */
+}
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/main.adb b/gdb/testsuite/gdb.dap/ada-arrays/main.adb
new file mode 100644
index 0000000..c9e98c4
--- /dev/null
+++ b/gdb/testsuite/gdb.dap/ada-arrays/main.adb
@@ -0,0 +1,24 @@
+-- Copyright 2023 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+
+procedure Main is
+ Value : Buffer (1 .. 4) := (1, 2, 3, 4);
+ Another_Value : AR := (5, 6, 7, 8, 9);
+ Hello: String := "hello";
+begin
+ Do_Nothing (Value, Another_Value, Hello);
+end Main;
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/pck.adb b/gdb/testsuite/gdb.dap/ada-arrays/pck.adb
new file mode 100644
index 0000000..7efa893
--- /dev/null
+++ b/gdb/testsuite/gdb.dap/ada-arrays/pck.adb
@@ -0,0 +1,21 @@
+-- Copyright 2023 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+ procedure Do_Nothing (The_Buffer : in out Buffer; The_AR : in out AR; Hello: in out String) is
+ begin
+ C_Procedure (23);
+ end Do_Nothing;
+end Pck;
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/pck.ads b/gdb/testsuite/gdb.dap/ada-arrays/pck.ads
new file mode 100644
index 0000000..475bb7b
--- /dev/null
+++ b/gdb/testsuite/gdb.dap/ada-arrays/pck.ads
@@ -0,0 +1,51 @@
+-- Copyright 2023 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package Pck is
+ pragma Linker_Options ("cstuff.o");
+
+ procedure C_Procedure (Value : Integer);
+ pragma Import(C, C_Procedure, "c_procedure");
+
+ type Small is new Integer range 0 .. 2 ** 6 - 1;
+
+ type Buffer is array (Integer range <>) of Small;
+ pragma Pack (Buffer);
+
+ type Enum_With_Gaps is
+ (
+ LIT0,
+ LIT1,
+ LIT2,
+ LIT3,
+ LIT4
+ );
+
+ for Enum_With_Gaps use
+ (
+ LIT0 => 3,
+ LIT1 => 5,
+ LIT2 => 8,
+ LIT3 => 13,
+ LIT4 => 21
+ );
+ for Enum_With_Gaps'size use 16;
+
+ type Enum_Subrange is new Enum_With_Gaps range Lit1 .. Lit3;
+
+ type AR is array (Enum_With_Gaps range <>) of Integer;
+
+ procedure Do_Nothing (The_Buffer : in out Buffer; The_AR : in out AR; Hello: in out String);
+end Pck;