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

Pedro Alves
2013-08-08T17:43:11Z

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.

> 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.

> + 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.

------------
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);