gdb: move displaced_step_dump_bytes into gdbsupport (and rename)

It was pointed out during review of another patch that the function
displaced_step_dump_bytes really isn't specific to displaced stepping,
and should really get a more generic name and move into gdbsupport/.

This commit does just that.  The function is renamed to
bytes_to_string and is moved into gdbsupport/common-utils.{cc,h}.  The
function implementation doesn't really change. Much...

... I have updated the function to take an array view, which makes it
slightly easier to call in a couple of places where we already have a
gdb::bytes_vector.  I've then added an inline wrapper to convert a raw
pointer and length into an array view, which is used in places where
we don't easily have a gdb::bytes_vector (or similar).

Updated all users of displaced_step_dump_bytes.

There should be no user visible changes after this commit.

Finally, I ended up having to add an include of gdb_assert.h into
array-view.h.  When I include array-view.h into common-utils.h I ran
into build problems because array-view.h calls gdb_assert.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
Andrew Burgess
2023-03-22 17:22:51 +00:00
parent 6d84a385ed
commit a6e5abae4e
10 changed files with 42 additions and 31 deletions

View File

@@ -445,3 +445,21 @@ hex2bin (const char *hex)
return bin;
}
/* See gdbsupport/common-utils.h. */
std::string
bytes_to_string (gdb::array_view<const gdb_byte> bytes)
{
std::string ret;
for (size_t i = 0; i < bytes.size (); i++)
{
if (i == 0)
ret += string_printf ("%02x", bytes[i]);
else
ret += string_printf (" %02x", bytes[i]);
}
return ret;
}