Re: [PATCH v1 03/10] target_fileio_read_stralloc: add an optional length parameter

Thiago Jung Bauermann <[email protected]> Fri, 24 Jul 2026 02:50:37 +0000
Newsgroups gmane.comp.gdb.patches
Message-ID <[email protected]>
Matthieu Longo <[email protected]> writes:

> On 09/07/2026 07:30, Thiago Jung Bauermann wrote:
>> Matthieu Longo <[email protected]> writes:
>> 
>>> diff --git a/gdb/target.h b/gdb/target.h
>>> index 22653138491..4215553033c 100644
>>> --- a/gdb/target.h
>>> +++ b/gdb/target.h
>>> @@ -2336,7 +2336,7 @@ extern LONGEST target_fileio_read_alloc (struct inferior *inf,
>>>     are returned as allocated but empty strings.  A warning is issued
>>>     if the result contains any embedded NUL bytes.  */
>>>  extern gdb::unique_xmalloc_ptr<char> target_fileio_read_stralloc
>>> -    (struct inferior *inf, const char *filename);
>>> +    (struct inferior *inf, const char *filename, size_t *len = nullptr);
>> 
>> It's worth updating the documentation comment to mention the new parameter.
>
> See the updated diff in gdb/target.h
>
> diff --git a/gdb/target.h b/gdb/target.h
> index 22653138491..0df5a654f75 100644
> --- a/gdb/target.h
> +++ b/gdb/target.h
> @@ -2328,15 +2328,19 @@ extern LONGEST target_fileio_read_alloc (struct inferior *inf,
>                                          const char *filename,
>                                          gdb_byte **buf_p);
>
> -/* Read target file FILENAME, in the filesystem as seen by INF.  If
> -   INF is NULL, use the filesystem seen by the debugger (GDB or, for
> -   remote targets, the remote stub).  The result is NUL-terminated and
> -   returned as a string, allocated using xmalloc.  If an error occurs
> -   or the transfer is unsupported, NULL is returned.  Empty objects
> -   are returned as allocated but empty strings.  A warning is issued
> -   if the result contains any embedded NUL bytes.  */
> +/* Read the content of the target file FILENAME from the filesystem as
> +   seen by INF.  If INF is NULL, use the filesystem seen by the debugger
> +   (GDB or, for remote targets, the remote stub).
> +
> +   If LEN is not NULL, store the number of bytes read, excluding the
> +   terminating NUL byte.
> +
> +   The returned buffer is NUL-terminated and allocated using xmalloc.
> +   On error, or if the transfer is unsupported, return NULL.  Empty
> +   files are returned as allocated but empty strings.  A warning is
> +   issued if the file content contains embedded NUL bytes.  */
>  extern gdb::unique_xmalloc_ptr<char> target_fileio_read_stralloc
> -    (struct inferior *inf, const char *filename);
> +    (struct inferior *inf, const char *filename, size_t *len = nullptr);
>
>  /* Invalidate the target associated with open handles that were open
>     on target TARG, since we're about to close (and maybe destroy) the

Looks great, thanks!

My only suggestion is to take the opportunity to do s/NULL/nullptr/ in
the comment.

-- 
Thiago
(he/him)