emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[4]: Speedbar segv


From: Eric M. Ludlam
Subject: Re[4]: Speedbar segv
Date: Sun, 3 Jun 2001 13:14:00 -0400

>>> Gerd Moellmann <address@hidden> seems to think that:
>"Eric M. Ludlam" <address@hidden> writes:
>
>> >> emacs -q
>> >> ;; In your *scratch* buffer, eval these
>> >> (add-to-list 'load-path "~/eieio-0.16")
>> >> (add-to-list 'load-path "~/ede-1.0.beta2")
>> >> ;; End
>> >> M-x load-library RET ede RET
>> >
>> >
>> >Eric, I'm afraid I don't get further than this.  Loading `ede'
>> >gives a ``speedbar-message: Wrong type argument: framep, nil''.
>> >Likewise when I try to compile the files in EDE-1.0.beta2 with
>> >the Makefile there.
>> 
>> Yes, that error is ok.  It happens after all the important EDE
>> functions which cause the segv are loaded in.  It is OK to continue
>> with the above directions after this error which is what I did when
>> trying to find the minimum set of things to download.  If you do want
>> to fix this to continue, you can get speedbar 0.14 beta1 which has the
>> appropriate fixes in it, or you can remove the last few lines after
>> the (provide 'ede) in ede.el which throws the error, and is not deeded
>> to reproduce the bug.
>
>When I ignore the error and proceed, the Speedbar frame comes up
>normally, here.  Hm, that's no good.
>
>Judging from the backtrace, the abort is caused by UNBLOCK_INPUT
>finding that the interrupt_input_blocked counter became negative which
>could indicate that there's some path through the code where an
>UNBLOCK_INPUT is done without a matching BLOCK_INPUT.  That on the
>other hand is impossible in this case, since realize_basic_faces has a
>matching BLOCK_INPUT.  If interrupt_input_blocked becomes negative in
>the UNBLOCK_INPUT matching that BLOCK_INPUT it already was negative
>before the BLOCK_INPUT, and there seems to be no way how that can
>happen (there's no place in sight where interrupt_input_blocked is set
>directly to a negative value, for instance).  
>
>Very strange; a wild pointer maybe?
>
>Can you reproduce this at will?  If so, could you please set a 
>breakpoint on realize_basic_faces, and step through the code, 
>displaying the value of interrupt_input_blocked at each step?

After my last email, I managed to build a simple .el file which causes
a segv when it's loaded.  It does it 100% of the time in my recent CVS
build.

Hope this helps.
Eric
-----------------------------
;; Segv script for Emacs 21


(defvar segv-minor-mode t
  "Non-nil in SEGV controlled buffers.")
(make-variable-buffer-local 'segv-minor-mode)

;; We don't want to waste space.  There is a menu after all.
(add-to-list 'minor-mode-alist '(segv-minor-mode " Segv"))

(defvar segv-minor-keymap
  (let ((map (make-sparse-keymap))
        (pmap (make-sparse-keymap)))
    (define-key pmap "D" 'segv-nonexistant-func)
    ;; bind our submap into map
    (define-key map "\C-c." pmap)
    map)
  "Keymap used in project minor mode.")

(if segv-minor-keymap
    (progn
      (easy-menu-define
       segv-minor-menu segv-minor-keymap "Project Minor Mode Menu"
       '("Segv"
         ( "Build" :filter segv-build-forms-menu )
         ))
      ))

;; Allow re-insertion of a new keymap
(let ((a (assoc 'segv-minor-mode minor-mode-map-alist)))
  (if a
      (setcdr a segv-minor-keymap)
    (add-to-list 'minor-mode-map-alist
                 (cons 'segv-minor-mode
                       segv-minor-keymap))
    ))

(defun segv-build-forms-menu (menu-def)
  "Create a sub menu for building different parts of an SEGV system.
Argument MENU-DEF is the menu definition to use."
  (easy-menu-filter-return
   (easy-menu-create-menu
    "Build Forms"
    (error "Does this error cause a segv?")
    )))

(make-frame)

-- 
          Eric Ludlam:                 address@hidden, address@hidden
   Home: www.ultranet.com/~zappo            Siege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net               GNU: www.gnu.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]