diff options
author | Tom Tromey <tromey@adacore.com> | 2024-03-07 12:57:07 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-04-02 11:37:32 -0600 |
commit | 251cedaeb57fe1e0fd28798f476fbee75373bbf4 (patch) | |
tree | 02b886a94fada4b080bf23c6dac2b8ae6401907a /gdb/rust-lang.c | |
parent | 051889c8104c3c959b903d08e9afbcb7e9670c43 (diff) | |
download | gdb-251cedaeb57fe1e0fd28798f476fbee75373bbf4.zip gdb-251cedaeb57fe1e0fd28798f476fbee75373bbf4.tar.gz gdb-251cedaeb57fe1e0fd28798f476fbee75373bbf4.tar.bz2 |
Print type name when printing Rust slice
The recent change to how unsized Rust values are printed included a
small regression from past behavior. Previously, a slice's type would
be printed, like:
(gdb) print slice
$80 = &[i32] [3]
The patch changed this to just
(gdb) print slice
$80 = [3]
This patch restores the previous behavior.
Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30330
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31517
Diffstat (limited to 'gdb/rust-lang.c')
-rw-r--r-- | gdb/rust-lang.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 64e4057..53e7356 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -475,6 +475,17 @@ rust_language::val_print_slice } } + /* Print the slice type here. This was gdb's historical behavior + (from before unsized types were generically handled) and helps + make it clear that the user is seeing a slice, not an array. + Only arrays must be handled as the other cases are handled by + value_print_inner. */ + if (type->code () == TYPE_CODE_ARRAY) + { + type_print (orig_type, "", stream, -1); + gdb_printf (stream, " "); + } + value_print_inner (val, stream, recurse, options); } |