diff options
author | Tom Tromey <tromey@adacore.com> | 2023-07-21 09:34:21 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2023-09-05 11:10:24 -0600 |
commit | 708cedb722130686607d086085bac963a406580a (patch) | |
tree | 20a3a121fd069b974a74bc683b4da3da4e921bc1 /gdb/testsuite/gdb.dap/ada-arrays | |
parent | 59668c9d8c2fd10a521b06f2183b054498421d66 (diff) | |
download | binutils-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.c | 22 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dap/ada-arrays/main.adb | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dap/ada-arrays/pck.adb | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dap/ada-arrays/pck.ads | 51 |
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; |