[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Add "comm" as a format spec to ps
From: |
Samuel Thibault |
Subject: |
Re: [PATCH] Add "comm" as a format spec to ps |
Date: |
Wed, 8 Dec 2021 17:51:46 +0100 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Applied, thanks!
Samuel
Andrea Monaco, le mer. 08 déc. 2021 15:38:09 +0100, a ecrit:
>
> Hello,
>
>
> on my system I found that doing
>
> $ gdb foo [TAB]
>
> that is, trying completion on the second argument of a call to gdb,
> yields a
>
> ps: comm: Unknown format spec
>
> That's because bash has specific completion rules for many common
> programs. In particular in /usr/share/bash-completion/completions/gdb I
> have "ps axo comm,pid"; comm is not recognized by Hurd's ps as a format
> spec, but is required by POSIX to display the command name (like "exe",
> but without the full path).
>
> This patch adds it. So now we have completion of PIDs matching a given
> program, which is useful when attaching gdb to a running process.
>
>
> Cheers,
>
> Andrea Monaco
>
>
>
> diff --git a/libps/spec.c b/libps/spec.c
> index c9164f9d..cbb00a3f 100644
> --- a/libps/spec.c
> +++ b/libps/spec.c
> @@ -372,6 +372,17 @@ ps_get_exe (struct proc_stat *ps, char **exe_p, int
> *exe_len_p)
> }
> const struct ps_getter ps_exe_getter =
> {"exe", PSTAT_EXE, ps_get_exe};
> +
> +static void
> +ps_get_comm (struct proc_stat *ps, char **comm_p, int *comm_len_p)
> +{
> + /* The GNU basename doesn't alter the string passed as arg */
> + *comm_p = basename (proc_stat_exe (ps));
> + *comm_len_p = strlen (*comm_p);
> +}
> +const struct ps_getter ps_comm_getter =
> +{"comm", PSTAT_EXE, ps_get_comm};
> +
> /* ---------------------------------------------------------------- */
> /* some printing functions */
>
> @@ -1128,6 +1139,8 @@ static const struct ps_fmt_spec specs[] =
> &ps_args_getter, ps_emit_args, ps_cmp_strings,ps_nominal_string},
> {"Arg0", 0, 0, -1, 0,
> &ps_args_getter, ps_emit_string, ps_cmp_strings,ps_nominal_string},
> + {"Comm", "COMMAND", 0, -1, 0,
> + &ps_comm_getter, ps_emit_string, ps_cmp_strings,ps_nominal_string},
> {"Env", 0, 0, -1, 0,
> &ps_env_getter, ps_emit_args, ps_cmp_strings,ps_nominal_string},
> {"Start", 0, -7, 1, 0,
>
--
Samuel
<d> bah à défaut de ligne TGV, ils ont un GR
-+- #ens-mim - comment ça, paumé ?! -+-