unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Eli Zaretskii'" <eliz@gnu.org>
Cc: michael_heerdegen@web.de, 8789@debbugs.gnu.org
Subject: bug#8789: 23.3; debug backtrace buffer changes window on step-through
Date: Thu, 20 Sep 2012 11:49:43 -0700	[thread overview]
Message-ID: <8123443E3625415F89A2118ECE393E72@us.oracle.com> (raw)
In-Reply-To: <83392czgvc.fsf@gnu.org>

> > > So the solution is probably to never enable `debug-on-entry' for
> > > functions that run through the mode-line mechanism.
> > 
> > That does not sound like the solution to me.
> 
> Please suggest another solution, then, for a function that is
> constantly called as part of redisplay (which is what happens here,
> see below).  AFAIU, this is why you "cannot exit the debugger":
> anything that you do redisplays the mode line, and re-enters the
> debugger.

Gee, Eli, I don't know what the solution is.  Except maybe to revert the change
that caused the regression.

Or maybe the debugger should skip over such mode-line refreshing?  I really
don't know, sorry.

I do know that there is all kinds of code, including user code, that calls
`file-remote-p' - if nothing else, to avoid tramp digging in its heels and
trying to access remote machines.  If we cannot debug such code without first
manually fiddling with the mode-line spec, then that's a sorry situation, IMHO.

What users will even be aware that they will need to fiddle with such a
workaround?  A user stepping through code that happens to call `file-remote-p'
at some point will be quite surprised, and will typically have no clue what to
do at that point.

> > What does "run through the mode-line mechanism" even mean,
> 
> It means functions that are called when some Lisp form is evaluated as
> part of displaying the mode line.

I would say that it is indeed unfortunate if we are now calling `file-remote-p'
as part of displaying the mode line.  Sure, individual users can remove that.
And sure, having an indication in the mode line of whether or not something is
remote is nice.  But if this is the price then I'd say we should find some other
solution - i.e., some other way to add that feature.

If nothing else, it might be enough to duplicate the code for `file-remote-p' as
`mode-line-file-remote-p', and use only the latter for mode-line update.  That
should reduce interference with most Elisp code.

I don't claim that is the best way to handle this.  My point is that we should
not have mode-line updating invoke `file-remote-p', if that means that breaking
debugging, so that the debugger barfs and rebarfs whenever it invokes
`file-remote-p'.

> > and how does a user tell whether a given function might 
> "run through..."? 
> 
> By examining the C-level call stack, I presume.

Wunderbar.  Lisp debugger users now need to dig deeper into the bowels of Emacs.

> > And for such functions (whatever that might mean), what 
> > workaround do you propose, to get the effect of `debug-on-entry'.
> 
> Why do you need a work-around?  The feature works, it just has nasty
> side-effects due to the fact that the function is constantly called.

IOW, it works but it just doesn't work, in practice.

> > This is a regression, and should just be fixed.
> 
> How do you "fix"  situation where a function you want to debug is
> called at a very high frequency?

It should not be called for mode-line display.  IMHO.  That was a misguided
enhancement.

> The only way I know if is to stop
> calling it -- which is precisely what was suggested: set
> mode-line-remote to nil, which avoids the invocation of file-remote-p
> as part of mode-line redisplay.

Not as an individual user - that's just Emacs Dev punting.  Perhaps the debugger
could do that automatically.  Whether it should or not, and whether that should
be a user option, I also don't know.  But we should not expect users to dig in
and discover this stuff and work around it on an individual basis.






  reply	other threads:[~2012-09-20 18:49 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-02 17:07 bug#8789: 23.3; debug backtrace buffer changes window on step-through Pete Beardmore
2011-06-02 18:00 ` Drew Adams
2011-06-03 13:19 ` martin rudalics
2011-06-08 15:29   ` Stefan Monnier
2012-02-09  5:31     ` Michael Heerdegen
2012-02-09 18:21       ` Stefan Monnier
2012-02-11  0:04         ` Michael Heerdegen
2012-02-15 17:00         ` martin rudalics
2012-02-15 19:05           ` Stefan Monnier
2012-02-16  8:03             ` martin rudalics
2012-02-16 13:52               ` Stefan Monnier
2012-02-16 17:50                 ` martin rudalics
2012-02-16 21:53                   ` Michael Heerdegen
2012-02-17  9:58                     ` martin rudalics
2012-02-24 18:42                     ` martin rudalics
2012-02-28 23:56                       ` Michael Heerdegen
2012-02-29  8:47                         ` martin rudalics
2012-03-03 19:48                           ` Michael Heerdegen
2012-09-08 13:33                     ` martin rudalics
2012-09-12 14:20                       ` Michael Heerdegen
2012-09-12 15:50                         ` martin rudalics
2012-10-19  7:53                           ` Michael Heerdegen
2012-10-19 10:02                             ` martin rudalics
2012-09-17 20:34                         ` Drew Adams
2012-09-17 22:30                           ` martin rudalics
2012-09-17 22:46                             ` Drew Adams
2012-09-18  7:10                               ` martin rudalics
2012-09-18 14:28                                 ` Drew Adams
2012-09-19 16:46                                   ` Drew Adams
2012-09-19 17:10                                     ` martin rudalics
2012-09-19 17:48                                       ` Drew Adams
2012-09-19 20:39                                         ` Drew Adams
2012-09-19 20:55                                           ` Drew Adams
2012-09-20 13:50                                             ` martin rudalics
2012-09-20 18:22                                               ` Drew Adams
2012-09-20 13:50                                           ` martin rudalics
2012-09-20 17:10                                             ` Michael Heerdegen
2012-09-20 17:26                                               ` martin rudalics
2012-09-20 18:08                                                 ` Drew Adams
2012-09-20 18:30                                                   ` Eli Zaretskii
2012-09-20 18:49                                                     ` Drew Adams [this message]
2012-09-20 20:41                                                       ` Eli Zaretskii
2012-09-20 20:59                                                         ` Drew Adams
2012-09-20 22:15                                                           ` Stefan Monnier
2012-09-20 20:17                                                     ` Michael Heerdegen
2012-09-20 20:34                                                       ` Drew Adams
2012-09-20 20:52                                                         ` Eli Zaretskii
2012-09-20 21:11                                                           ` Drew Adams
2012-09-20 21:25                                                         ` Michael Heerdegen
2012-09-20 21:33                                                           ` Drew Adams
2012-09-20 22:01                                                             ` Michael Heerdegen
2012-09-20 23:16                                                               ` Drew Adams
2012-09-19 17:17                                     ` Drew Adams
2012-10-03  9:13                       ` martin rudalics
2012-10-03 16:09                         ` Drew Adams
2012-03-11 18:14           ` martin rudalics
2012-02-09 18:24       ` martin rudalics
2012-02-11  0:00         ` Michael Heerdegen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8123443E3625415F89A2118ECE393E72@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=8789@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=michael_heerdegen@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).