[binutils-gdb] Convert char array to std::string in linux_find_memory_regions_full
Luis Machado
luisgpm@sourceware.org
Wed Mar 24 18:15:52 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=93e447c605e549f183681ed60e729d3d50f4d113
commit 93e447c605e549f183681ed60e729d3d50f4d113
Author: Luis Machado <luis.machado@linaro.org>
Date: Wed Dec 30 10:46:11 2020 -0300
Convert char array to std::string in linux_find_memory_regions_full
This is a quick cleanup that removes the use of fixed-length char arrays and
uses std::string instead.
gdb/ChangeLog:
2021-03-24 Luis Machado <luis.machado@linaro.org>
* linux-tdep.c (linux_find_memory_regions_full): Use std::string
instead of char arrays.
Diff:
---
gdb/ChangeLog | 5 +++++
gdb/linux-tdep.c | 25 ++++++++++++++-----------
2 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2302c211367..da4bb26c21c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2021-03-24 Luis Machado <luis.machado@linaro.org>
+
+ * linux-tdep.c (linux_find_memory_regions_full): Use std::string
+ instead of char arrays.
+
2021-03-24 Luis Machado <luis.machado@linaro.org>
* Makefile.in (ALL_64_TARGET_OBS): Add arch/aarch64-mte-linux.o.
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index ab3402a41c2..17ed9cac8a7 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1279,8 +1279,6 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
linux_find_memory_region_ftype *func,
void *obfd)
{
- char mapsfilename[100];
- char coredumpfilter_name[100];
pid_t pid;
/* Default dump behavior of coredump_filter (0x33), according to
Documentation/filesystems/proc.txt from the Linux kernel
@@ -1298,10 +1296,12 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
if (use_coredump_filter)
{
- xsnprintf (coredumpfilter_name, sizeof (coredumpfilter_name),
- "/proc/%d/coredump_filter", pid);
+ std::string core_dump_filter_name
+ = string_printf ("/proc/%d/coredump_filter", pid);
+
gdb::unique_xmalloc_ptr<char> coredumpfilterdata
- = target_fileio_read_stralloc (NULL, coredumpfilter_name);
+ = target_fileio_read_stralloc (NULL, core_dump_filter_name.c_str ());
+
if (coredumpfilterdata != NULL)
{
unsigned int flags;
@@ -1311,14 +1311,16 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
}
}
- xsnprintf (mapsfilename, sizeof mapsfilename, "/proc/%d/smaps", pid);
+ std::string maps_filename = string_printf ("/proc/%d/smaps", pid);
+
gdb::unique_xmalloc_ptr<char> data
- = target_fileio_read_stralloc (NULL, mapsfilename);
+ = target_fileio_read_stralloc (NULL, maps_filename.c_str ());
+
if (data == NULL)
{
/* Older Linux kernels did not support /proc/PID/smaps. */
- xsnprintf (mapsfilename, sizeof mapsfilename, "/proc/%d/maps", pid);
- data = target_fileio_read_stralloc (NULL, mapsfilename);
+ maps_filename = string_printf ("/proc/%d/maps", pid);
+ data = target_fileio_read_stralloc (NULL, maps_filename.c_str ());
}
if (data != NULL)
@@ -1378,7 +1380,8 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
if (sscanf (line, "%64s", keyword) != 1)
{
- warning (_("Error parsing {s,}maps file '%s'"), mapsfilename);
+ warning (_("Error parsing {s,}maps file '%s'"),
+ maps_filename.c_str ());
break;
}
@@ -1399,7 +1402,7 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
if (sscanf (line, "%*s%lu", &number) != 1)
{
warning (_("Error parsing {s,}maps file '%s' number"),
- mapsfilename);
+ maps_filename.c_str ());
break;
}
if (number > 0)
More information about the Gdb-cvs
mailing list