unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* Bug: debug/mode-line/Tramp
@ 2002-07-27 20:46 Lars Hansen
  2002-07-28 10:13 ` Kai Großjohann
  2002-07-29  1:12 ` Richard Stallman
  0 siblings, 2 replies; 5+ messages in thread
From: Lars Hansen @ 2002-07-27 20:46 UTC (permalink / raw)
  Cc: Kai.Grossjohann

Hi

I have run into a strange bug. It can be reproduced as follows;

Start Emacs 21.2 under MS Windows with a .emacs file containing

   (defun foo ()
      (let (x)
         "abc"))

   (setq-default mode-line-format '((:eval (foo))))

   (add-to-list 'load-path "~/emacs/tramp/lisp")
   (require 'tramp)

Then open the .emacs file, place point in function foo, and
choose "Instrument Function for Debugging" from the Emacs-Lisp
menu. Then Emacs crashes with an Abort/Retry/Ignore dialog box.
Looks strange, dosen't it?


Lars Hansen
e-mail: larsh@math.ku.dk

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

* Re: Bug: debug/mode-line/Tramp
  2002-07-27 20:46 Bug: debug/mode-line/Tramp Lars Hansen
@ 2002-07-28 10:13 ` Kai Großjohann
  2002-07-28 13:03   ` Lars Hansen
  2002-07-29  1:12 ` Richard Stallman
  1 sibling, 1 reply; 5+ messages in thread
From: Kai Großjohann @ 2002-07-28 10:13 UTC (permalink / raw)
  Cc: bug-gnu-emacs

"Lars Hansen" <larsh@math.ku.dk> writes:

> Then open the .emacs file, place point in function foo, and
> choose "Instrument Function for Debugging" from the Emacs-Lisp
> menu. Then Emacs crashes with an Abort/Retry/Ignore dialog box.
> Looks strange, dosen't it?

Fascinating.  I wonder what Tramp does that might lead to the
problem.  Or maybe it also happens without Tramp.

kai
-- 
A large number of young women don't trust men with beards.  (BFBS Radio)

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

* Re: Bug: debug/mode-line/Tramp
  2002-07-28 10:13 ` Kai Großjohann
@ 2002-07-28 13:03   ` Lars Hansen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Hansen @ 2002-07-28 13:03 UTC (permalink / raw)
  Cc: bug-gnu-emacs

> Fascinating.  I wonder what Tramp does that might lead to the
> problem.  Or maybe it also happens without Tramp.

I started out with my .emacs file having about 780 lines and spent
some hours deleting a few lines at a time to find a minimal configuration
with which one can make the problem happen. And I was unabel to make
it happen without Tramp. Or without the let statment in the function.
But I share your wondering what Tramp have to do with it!

Lars

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

* Re: Bug: debug/mode-line/Tramp
  2002-07-27 20:46 Bug: debug/mode-line/Tramp Lars Hansen
  2002-07-28 10:13 ` Kai Großjohann
@ 2002-07-29  1:12 ` Richard Stallman
  2002-07-29 18:02   ` Lars Hansen
  1 sibling, 1 reply; 5+ messages in thread
From: Richard Stallman @ 2002-07-29  1:12 UTC (permalink / raw)
  Cc: bug-gnu-emacs, Kai.Grossjohann

This change (which I made in the current development sources)
seems to fix it.  Does it work for you?  It won't let you actually
enter edebug within computing the mode line--that would be very hard.

*** edebug.el.~3.53.~	Sat Apr 13 13:18:00 2002
--- edebug.el	Sun Jul 28 16:18:33 2002
***************
*** 2423,2467 ****
  
  
  (defun edebug-debugger (edebug-offset-index edebug-arg-mode edebug-value)
!   ;; Check breakpoints and pending input.
!   ;; If edebug display should be updated, call edebug-display.
!   ;; Return edebug-value.
!   (let* (;; This needs to be here since breakpoints may be changed.
! 	 (edebug-breakpoints (car (cdr edebug-data))) ; list of breakpoints
! 	 (edebug-break-data (assq edebug-offset-index edebug-breakpoints))
! 	 (edebug-break-condition (car (cdr edebug-break-data)))
! 	 (edebug-global-break
! 	  (if edebug-global-break-condition
! 	      (condition-case nil
! 		  (setq edebug-global-break-result
! 			(eval edebug-global-break-condition))
! 		(error nil))))
! 	 (edebug-break))
  
  ;;;    (edebug-trace "exp: %s" edebug-value)
!     ;; Test whether we should break.
!     (setq edebug-break 
! 	  (or edebug-global-break
! 	      (and edebug-break-data
! 		   (or (not edebug-break-condition)
! 		       (setq edebug-break-result
! 			     (eval edebug-break-condition))))))
!     (if (and edebug-break
! 	     (nth 2 edebug-break-data)) ; is it temporary?
! 	;; Delete the breakpoint.
! 	(setcdr edebug-data
! 		(cons (delq edebug-break-data edebug-breakpoints)
! 		      (cdr (cdr edebug-data)))))
  
!     ;; Display if mode is not go, continue, or Continue-fast
!     ;; or break, or input is pending, 
!     (if (or (not (memq edebug-execution-mode '(go continue Continue-fast)))
! 	    edebug-break
! 	    (edebug-input-pending-p))
! 	(edebug-display))   ; <--------------- display
      
!     edebug-value
!     ))
  
  
  ;; window-start now stored with each function.
--- 2423,2469 ----
  
  
  (defun edebug-debugger (edebug-offset-index edebug-arg-mode edebug-value)
!   (if inhibit-redisplay
!       edebug-value
!     ;; Check breakpoints and pending input.
!     ;; If edebug display should be updated, call edebug-display.
!     ;; Return edebug-value.
!     (let* ( ;; This needs to be here since breakpoints may be changed.
! 	   (edebug-breakpoints (car (cdr edebug-data)))	; list of breakpoints
! 	   (edebug-break-data (assq edebug-offset-index edebug-breakpoints))
! 	   (edebug-break-condition (car (cdr edebug-break-data)))
! 	   (edebug-global-break
! 	    (if edebug-global-break-condition
! 		(condition-case nil
! 		    (setq edebug-global-break-result
! 			  (eval edebug-global-break-condition))
! 		  (error nil))))
! 	   (edebug-break))
  
  ;;;    (edebug-trace "exp: %s" edebug-value)
!       ;; Test whether we should break.
!       (setq edebug-break 
! 	    (or edebug-global-break
! 		(and edebug-break-data
! 		     (or (not edebug-break-condition)
! 			 (setq edebug-break-result
! 			       (eval edebug-break-condition))))))
!       (if (and edebug-break
! 	       (nth 2 edebug-break-data)) ; is it temporary?
! 	  ;; Delete the breakpoint.
! 	  (setcdr edebug-data
! 		  (cons (delq edebug-break-data edebug-breakpoints)
! 			(cdr (cdr edebug-data)))))
  
!       ;; Display if mode is not go, continue, or Continue-fast
!       ;; or break, or input is pending, 
!       (if (or (not (memq edebug-execution-mode '(go continue Continue-fast)))
! 	      edebug-break
! 	      (edebug-input-pending-p))
! 	  (edebug-display))		; <--------------- display
      
!       edebug-value
!       )))
  
  
  ;; window-start now stored with each function.

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

* Re: Bug: debug/mode-line/Tramp
  2002-07-29  1:12 ` Richard Stallman
@ 2002-07-29 18:02   ` Lars Hansen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Hansen @ 2002-07-29 18:02 UTC (permalink / raw)
  Cc: bug-gnu-emacs, Kai.Grossjohann

> This change (which I made in the current development sources)
> seems to fix it.  Does it work for you?  It won't let you actually
> enter edebug within computing the mode line--that would be very hard.

Yes, it works. Thanks!

Lars

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

end of thread, other threads:[~2002-07-29 18:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-27 20:46 Bug: debug/mode-line/Tramp Lars Hansen
2002-07-28 10:13 ` Kai Großjohann
2002-07-28 13:03   ` Lars Hansen
2002-07-29  1:12 ` Richard Stallman
2002-07-29 18:02   ` Lars Hansen

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