unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* gud-chdir-before-run
@ 2010-03-03 10:25 Eli Zaretskii
  2010-03-03 15:23 ` gud-chdir-before-run Stefan Monnier
  2010-03-03 17:01 ` gud-chdir-before-run Andreas Schwab
  0 siblings, 2 replies; 5+ messages in thread
From: Eli Zaretskii @ 2010-03-03 10:25 UTC (permalink / raw)
  To: emacs-devel

Why is this option's default value non-nil?  It does the wrong thing
when the executable is not in the same directory as the sources, because
the .gdbinit file is usually found where the sources live, so changing
the directory starts GDB in the wrong place, and .gdbinit is not read.

In my usage, I normally type "M-x gdb" from a buffer that visits some
source file which is compiled into the program I'm about to debug, or
one of its Makefile's or other scripts.  For this use-case, the current
default is always wrong.

But my main problem with this default is that the effect is different
for the same command line, depending on whether you invoke GDB from the
shell prompt or via "M-x gdb RET".

Of course, customizing the option to nil is easy enough, but if there
are no important use-cases where it does TRT, perhaps we should consider
changing the default.  Or maybe we should dynamically decide whether to
chdir or not, depending on whether the executable mentioned in the GDB
command line is in the same directory as the current buffer.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: gud-chdir-before-run
  2010-03-03 10:25 gud-chdir-before-run Eli Zaretskii
@ 2010-03-03 15:23 ` Stefan Monnier
  2010-03-03 17:01 ` gud-chdir-before-run Andreas Schwab
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2010-03-03 15:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

> Why is this option's default value non-nil?

I'm all for changing it to nil (and even removing the feature
altogether since it's unreliable because it requires parsing the
shell command and guessing which part is the "program file name").


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: gud-chdir-before-run
  2010-03-03 10:25 gud-chdir-before-run Eli Zaretskii
  2010-03-03 15:23 ` gud-chdir-before-run Stefan Monnier
@ 2010-03-03 17:01 ` Andreas Schwab
  2010-03-03 17:27   ` gud-chdir-before-run Eli Zaretskii
  1 sibling, 1 reply; 5+ messages in thread
From: Andreas Schwab @ 2010-03-03 17:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why is this option's default value non-nil?  It does the wrong thing
> when the executable is not in the same directory as the sources, because
> the .gdbinit file is usually found where the sources live, so changing
> the directory starts GDB in the wrong place, and .gdbinit is not read.

Usually the .gdbinit lives where the program is built.

> In my usage, I normally type "M-x gdb" from a buffer that visits some
> source file which is compiled into the program I'm about to debug, or
> one of its Makefile's or other scripts.  For this use-case, the current
> default is always wrong.

Without gud-chdir-before-run you need to M-x cd to the build directory
*before* invoking M-x gdb, which would clobber default-directory for the
current buffer.

Alternatively there should be an easy way to do M-x in a different
default-directory then the one from the current buffer.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: gud-chdir-before-run
  2010-03-03 17:01 ` gud-chdir-before-run Andreas Schwab
@ 2010-03-03 17:27   ` Eli Zaretskii
  2010-03-03 17:45     ` gud-chdir-before-run Andreas Schwab
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2010-03-03 17:27 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: emacs-devel@gnu.org
> Date: Wed, 03 Mar 2010 18:01:46 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Why is this option's default value non-nil?  It does the wrong thing
> > when the executable is not in the same directory as the sources, because
> > the .gdbinit file is usually found where the sources live, so changing
> > the directory starts GDB in the wrong place, and .gdbinit is not read.
> 
> Usually the .gdbinit lives where the program is built.

"Where the program is built" is not necessarily "where the built
binary gets put".  E.g., "gcc foo.c -o /some/where/else".  Case in
point is how Emacs is built on Windows (the *.o files and the binary
get put into a per-architecture subdirectory of `src').  Another case
in point is any package after "make install && make clean".

In any case, I'm in the habit of invoking GDB from the directory where
I have the suitable .gdbinit.  If the executable is there as well,
gud-chdir-before-run is a no-op; if it is elsewhere, under the current
default I'm screwed.

> > In my usage, I normally type "M-x gdb" from a buffer that visits some
> > source file which is compiled into the program I'm about to debug, or
> > one of its Makefile's or other scripts.  For this use-case, the current
> > default is always wrong.
> 
> Without gud-chdir-before-run you need to M-x cd to the build directory
> *before* invoking M-x gdb, which would clobber default-directory for the
> current buffer.

A user of GDB is usually aware that she needs to invoke GDB in a
certain directory.  She would need to do that if she invokes GDB from
the shell prompt.  So she would probably switch to the suitable buffer
before invoking "M-x gdb".

It is confusing to have "M-x gdb" behave subtly different from what
you get outside Emacs.

Anyway, if there's objection to change the default, I don't want to
argue.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: gud-chdir-before-run
  2010-03-03 17:27   ` gud-chdir-before-run Eli Zaretskii
@ 2010-03-03 17:45     ` Andreas Schwab
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Schwab @ 2010-03-03 17:45 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> So she would probably switch to the suitable buffer before invoking
> "M-x gdb".

That assumes that such a suitable buffer exists.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-03-03 17:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-03 10:25 gud-chdir-before-run Eli Zaretskii
2010-03-03 15:23 ` gud-chdir-before-run Stefan Monnier
2010-03-03 17:01 ` gud-chdir-before-run Andreas Schwab
2010-03-03 17:27   ` gud-chdir-before-run Eli Zaretskii
2010-03-03 17:45     ` gud-chdir-before-run Andreas Schwab

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).