[PATCH] Fix calling gcore when gdb is not in $PATH.
Jan Kratochvil
jan.kratochvil@redhat.com
Fri Oct 11 18:10:00 GMT 2013
On Fri, 11 Oct 2013 19:53:12 +0200, Luis Machado wrote:
> On 10/11/2013 01:56 PM, Jan Kratochvil wrote:
> >On Fri, 11 Oct 2013 18:46:15 +0200, Luis Machado wrote:
> >>--- a/gdb/gcore.in
> >>+++ b/gdb/gcore.in
> >>@@ -49,9 +49,26 @@ rc=0
> >> # Loop through pids
> >> for pid in $*
> >> do
> >>+# Attempt to fetch the absolute path to the gcore script that was
> >>+# called.
> >>+binary_path=`dirname "$0"`
> >>+
> >>+ if test "x$binary_path" = x. ; then
> >>+ # We got "." back as a path. This means the user executed
> >>+ # the gcore script locally (i.e. ./gcore) or called the
> >>+ # script via a shell interpreter (i.e. sh gcore). We use
> >>+ # the "which" command to locate the real path of the gcore
> >>+ # script, disambiguating this situation.
> >>+ binary_path_from_env=`which "$0"`
> >>+ binary_path=`dirname $binary_path_from_env`
> >
> >In generally OK, just still ... is there some reason for this 'which' search?
> >Moreover if one really runs ./gcore then it should IMO take ./gdb (and not some
> >other gdb), if we should really pick GDB from the directory of gcore.
>
> Yes. The reason is to pick the gdb binary from the directory that
> contains the gcore script the user invoked.
>
> If the user issued "sh gcore" and /usr/bin/gcore was picked (based
> on $PATH), then we should use /usr/bin/gdb.
>
> Now, if the user issued "./gcore", ./gdb will be picked up, and so on.
>
> Does it make sense?
Great we agree. But your code does pick /usr/bin/gdb for ./gcore, doesn't it?
Which is why I proposed the change I proposed.
Jan
More information about the Gdb-patches
mailing list