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

Matthieu Longo <[email protected]> Mon, 27 Jul 2026 15:52:28 +0100
Newsgroups gmane.comp.gdb.patches
Message-ID <[email protected]>
On 24/07/2026 03:50, Thiago Jung Bauermann wrote:
> 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.
> 

I don't remember having seen usages of nullptr inside the documentation comments.
Have you a previous example for this ?

Matthieu