[PATCH v1 6/6] gdb/linux-tdep: remove legacy parse_smaps_data overload
Matthieu Longo <[email protected]> Tue, 28 Jul 2026 16:17:00 +0100
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
Now that all callers use the file_reader_t overload of parse_smaps_data, the legacy interface taking a raw buffer and filename separately is no longer needed. Fold its implementation into the file_reader_t version and remove the obsolete wrapper. This also simplifies the implementation by using the file_reader_t accessors directly. Reviewed-By: Thiago Jung Bauermann <[email protected]> Reviewed-By: Luis Machado <[email protected]> --- gdb/linux-tdep.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c index 628f73969d3..2e9cb14d5bf 100644 --- a/gdb/linux-tdep.c +++ b/gdb/linux-tdep.c @@ -1582,18 +1582,17 @@ parse_smaps_key_value (const char *keyword, const char *line, /* Helper function to parse the contents of /proc/<pid>/smaps into a data structure, for easy access. - DATA is the contents of the smaps file. The parsed contents are stored - into the SMAPS vector. */ + FREADER is a wrapper around the contents of the smaps file. + The parsed contents are stored into the SMAPS vector. */ static std::vector<struct smaps_data> -parse_smaps_data (const char *data, - const std::string &maps_filename) +parse_smaps_data (const file_reader_t<char> &freader) { char *line, *t; - gdb_assert (data != nullptr); + gdb_assert (freader); - line = strtok_r ((char *) data, "\n", &t); + line = strtok_r (freader.data (), "\n", &t); std::vector<struct smaps_data> smaps; @@ -1649,8 +1648,8 @@ parse_smaps_data (const char *data, if (sscanf (line, "%64s", keyword) != 1) { - warning (_("Error parsing {s,}maps file '%s'"), - maps_filename.c_str ()); + warning (_("Error parsing keyword in {s,}maps file '%s'"), + freader.c_filepath ()); break; } @@ -1664,12 +1663,12 @@ parse_smaps_data (const char *data, decode_vmflags (line, &v); if (parse_smaps_key_value (keyword, line, "Rss:", - maps_filename, + freader.filepath (), &rss)) continue; if (parse_smaps_key_value (keyword, line, "Swap:", - maps_filename, + freader.filepath (), &swap)) continue; @@ -1680,8 +1679,9 @@ parse_smaps_data (const char *data, if (sscanf (line, "%*s%lu", &number) != 1) { - warning (_("Error parsing {s,}maps file '%s' number"), - maps_filename.c_str ()); + warning (_("Error parsing numeric value associated with " + "key '%s' in {s,}maps file '%s'"), + keyword, freader.c_filepath ()); break; } if (number > 0) @@ -1731,12 +1731,6 @@ parse_smaps_data (const char *data, return smaps; } -static std::vector<struct smaps_data> -parse_smaps_data (const file_reader_t<char> &freader) -{ - return parse_smaps_data (freader.data (), freader.filepath ()); -} - /* Helper that checks if an address is in a memory tag page for a live process. */ -- 2.55.0