Re: [PATCH] gcore: expand tilde in filename, like in "dump memory" command.

Azat Khuzhin
2013-08-08T17:51:41Z

On Thu, Aug 8, 2013 at 9:42 PM, Pedro Alves <palves@redhat.com> wrote:
> On 08/07/2013 10:04 PM, Azat Khuzhin wrote:
>> Before this patch next command will fail:
>> (gdb) generate-core-file ~/core
>> Failed to open '~/core' for output.
>>
>> After this patch:
>> (gdb) generate-core-file ~/core
>> Saved corefile ~/core
>
> Thanks! Our cvs server is unfortunately stuck at the moment, but
> I'll apply this as soon as it gets unstuck.
>
>> ---
>> ChangeLog | 4 ++++
>> gdb/gcore.c | 6 +++++-
>> 2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/ChangeLog b/ChangeLog
>> index 8b16b09..7aa8e8e 100644
>> --- a/ChangeLog
>> +++ b/ChangeLog
>> @@ -1,3 +1,7 @@
>
>> +2013-07-22 Azat Khuzhin <a3at.mail@gmail.com>
>> +
>> + * gdb/gcore.c: Use tilde_expand() to handle tilde in filename
>
> File paths mentioned in ChangeLog entries are relative to the directory
> that holds the ChangeLog. So gdb/ should be dropped.
> No () when mentioning a function by name. Period at end of
> sentence.
>
> I notice you don't seem to have a copyright assignment on file.
> The change is small enough that we can put it in without one
> (that's what "tiny" means in the ChangeLog). If you intend to
> contribute further, contact me off list, and I'll get you
> started on the process.

Yes, I also think that it is small-enough to avoid copyright assignment.
Thanks, I'm thinking about this.

>
>> bfd *
>> create_gcore_bfd (const char *filename)
>> {
>> - bfd *obfd = gdb_bfd_openw (filename, default_gcore_target ());
>> + char *fullname = tilde_expand (filename);
>> +
>> + bfd *obfd = gdb_bfd_openw (fullname, default_gcore_target ());
>
> Empty line goes after last declaration.

Sorry, didn't notice it.

>
>> + xfree (fullname);
>>
>> if (!obfd)
>> error (_("Failed to open '%s' for output."), filename);
>
> Here's the adjusted patch I plan to check in as soon as I'm able to.

Thanks for you review Pedro!

>
> ------------
> From: Azat Khuzhin <a3at.mail@gmail.com>
> Date: 2013-08-08 01:04:35 +0400
>
> gcore: expand tilde in filename, like in "dump memory" command.
>
> Before this patch this fails:
>
> (gdb) generate-core-file ~/core
> Failed to open '~/core' for output.
>
> After this patch:
>
> (gdb) generate-core-file ~/core
> Saved corefile ~/core
>
> gdb/
> 2013-08-08 Azat Khuzhin <a3at.mail@gmail.com> (tiny change)
>
> * gcore.c (create_gcore_bfd): Use tilde_expand.
> ---
>
> gdb/gcore.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/gcore.c b/gdb/gcore.c
> index 620be54..9c83ec8 100644
> --- a/gdb/gcore.c
> +++ b/gdb/gcore.c
> @@ -34,6 +34,7 @@
> #include "regcache.h"
> #include "regset.h"
> #include "gdb_bfd.h"
> +#include "readline/tilde.h"
>
> /* The largest amount of memory to read from the target at once. We
> must throttle it to limit the amount of memory used by GDB during
> @@ -51,7 +52,12 @@ static int gcore_memory_sections (bfd *);
> bfd *
> create_gcore_bfd (const char *filename)
> {
> - bfd *obfd = gdb_bfd_openw (filename, default_gcore_target ());
> + char *fullname;
> + bfd *obfd;
> +
> + fullname = tilde_expand (filename);
> + obfd = gdb_bfd_openw (fullname, default_gcore_target ());
> + xfree (fullname);
>
> if (!obfd)
> error (_("Failed to open '%s' for output."), filename);
>

--
Respectfully
Azat Khuzhin