On Sunday 24 February 2008 16:14, Eric M. Ludlam wrote:
> >>> Michael Reiher <redm@...> seems to think that:
> >
> >Hi
> >
> >Unfortunately this doesn't seem to fix anything for me. When jumping and
> > then calling "C-x B" I still just get "Semantic Bookmark ring is
> > currently empty".
>
> Hi,
>
> This is because the ring is empty. :) The ia-fast-jump command
> doesn't explicitly push a semantic bookmark. I changed the bookmark
Ah, I somehow thought it was supposed to do that ...
> code to add advice to 'push-mark' instead of `set-mark-command'. So
> long as semantic-ia-fast-jump still has the `push-mark' in your
> version, this should solve that problem.
>
Hmm, somehow the bookmark ring is still empty after calling push-mark... C-h f
says that push-mark is adviced, but it doesn't seem to call
semantic-mrub-push. ... I tracked it down to the line
(when (and semantic-mru-bookmark-mode (interactive-p))
in the defadvice. Replacing "(interactive-p)" with "t" (or removing the line
all together) makes it insert something into the bookmark ring. Not sure what
I'm doing here though :)
However then calling C-x B gives an error. But maybe this is simply related to
the other issue.
# bind (standard-output stack-trace-on-signal debug-on-signal
stack-trace-on-error debug-on-error)
signal(wrong-type-argument ((or object-p class-p) nil))
# bind (field obj)
eieio-oref(nil :object-name)
# bind (assoclist list field)
object-assoc-list(:object-name ([object semantic-bookmark "main" ("main"
function ... nil #<extent [64, 194) semantic 0x8e352e0 in buffer main.cpp>)
nil 103 "/home/michael/Temp/semantic_test3/main.cpp" 1 mark] nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil))
# bind (ans first elts prompt)
semantic-mrub-completing-read("Switch to tag")
(list (semantic-mrub-completing-read "Switch to tag"))
call-interactively(semantic-mrub-switch-tags)
# (condition-case ... . error)
# (catch top-level ...)
> >Also the idle error and "lockups" are still present. However I found how
> > to reproduce it. I used the example below. I start XEmacs, load main.cpp,
> > place the cursor at the and of the line "bar->bbb( ccc );". Now things
> > either break right away, after removing the semicolon or after readding
> > it. Saving the file might play a role, I'm not sure, but that's basically
> > it. After it broke I get those idle errors and I can't open files
> > anymore, for instance.
>
> I had not realized you were using XEmacs. Not that I know how that
> might make things different either. While debugging some of your
> issues I've seen idle errors which I've fixed along the way, but I can
> no longer reproduce this one.
>
> Next time the message comes up, you might be able to get a stack trace
> by doing this:
>
> M-: (semantic-idle-summary-current-symbol-info) RET
When I'm over "foo1();" (in main()) I get:
("foo1" function (:type "void") (:filename
"/home/michael/Temp/semantic_test3/main.cpp") #<extent [37, 62) semantic
0x8677c64 in buffer main.cpp>)
Otherwise I get just "nil", e.g. over "bar" or "bbb" in the line
"bar->bbb( ccc );".
For the idle error, I get the following stack trace: [Trace 1] (see below).
Now that I try it, it seems the idle error (or the state of brokenness for
that matter) is easier to trigger when using ECB ([Trace 1]). But I was able
to trigger it also without ECB being loaded ([Trace 3]).
There are also other weird things going on, when bookmark mode is enabled...
E.g. at some point I can't select text in non-source buffers anymore (Args
out of range: #<buffer " *Message-Log*">, 0, 0) ... I can't open files
anymore [Trace 4] ... Even when things seems normal and I turn on
stack-trace-on-signal I get quite a few of them. Are these all errors, or is
this normal, e.g. [Trace 2]?
Another note: I just installed the GNU Emacs (21.4a), and all this happens the
same here. So it's not XEmacs specific.
Hope that helps a bit ...
Greets Michael
[Trace 1]:
# bind (standard-output stack-trace-on-signal debug-on-signal
stack-trace-on-error debug-on-error class)
eieiomt-next(nil)
# bind (lambdas mclass class key method)
eieiomt-method-list(semantic-mrub-preflush 0 nil)
# bind (newargs mclass lambdas tlambdas keys eieio-generic-call-methodname
eieio-generic-call-arglst firstarg primarymethodlist args method)
eieio-generic-call(semantic-mrub-preflush (nil))
# bind (local-args)
semantic-mrub-preflush(nil)
# bind (--dolist-temp--52026 e elts buf)
semantic-mrub-cache-flush-fcn()
run-hooks(semantic-mrub-cache-flush-fcn)
semantic-clear-toplevel-cache()
# bind (semantic-unmatched-syntax-cache
semantic-unmatched-syntax-cache-check semantic-parser-warnings res
semantic-lex-block-streams gc-cons-threshold)
semantic-fetch-tags()
# (unwind-protect ...)
# (unwind-protect ...)
byte-code("..." [semantic-fetch-tags nil] 1)
# (catch idle-scheduler ...)
# bind (semantic-flex-unterminated-syntax-end-function
semantic-lex-unterminated-syntax-end-function)
# (unwind-protect ...)
# bind (lexically-safe working-status-percentage-type
working-status-dynamic-type working-use-echo-area-p inhibit-quit
semantic-working-type)
semantic-idle-scheduler-refresh-tags()
# (unwind-protect ...)
# bind (mode safe others buffers inhibit-quit)
byte-code("..." [others buffers service semantic-current-input-throw-symbol
b semantic-idle-scheduler-max-buffer-size nil delq mapcar #<compiled-function
(b) "...(7)" [b buffer-file-name] 2> buffer-list 0 buffer-size
semantic-idle-scheduler-refresh-tags input-pending-p throw
parsing-mode-buffers idle-queue working-temp-message "IDLE: execture service
%s..." "IDLE: execture service %s...done" parsing-other-buffers
--dolist-temp--52013 --dolist-temp--52014 --dolist-temp--52015 mode
semantic-idle-scheduler-mode semantic-debug-enabled semantic-lex-debug safe
major-mode semantic-idle-scheduler-verbose-flag inhibit-quit
semantic-idle-scheduler-queue] 8)
# (catch idle-timer ...)
# bind (semantic-current-input-throw-symbol)
semantic-idle-core-handler()
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [match-data match-data ((store-match-data match-data))
semantic-idle-core-handler] 1)
# (condition-case ... . ((error (byte-code "ÁÂÃÄpÅ !#\"Æ" ... 7))))
# (unwind-protect ...)
semantic-idle-scheduler-function()
apply(semantic-idle-scheduler-function nil)
# bind (time-elapsed itimers itimer next-wakeup last-event-time this-command
inhibit-quit quit-flag current-itimer)
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [this-command inhibit-quit quit-flag match-data itimer
current-itimer match-data ((store-match-data match-data)) nil
itimer-uses-arguments apply itimer-function itimer-function-arguments
last-event-time next-wakeup itimers time-elapsed] 5)
# (condition-case ... . ((error (byte-code "ÂÃÄ !Å !#" ... 5)) (quit
(byte-code "ÁÂÃ !\"" ... 4))))
# (unwind-protect ...)
# bind (itimers itimer next-wakeup idle-time last-event-time
recorded-run-time inhibit-quit time-elapsed)
itimer-run-expired-timers(0.003969)
# bind (sleep elapsed now itimer-inside-driver inhibit-quit ignored)
itimer-timer-driver(nil)
dispatch-event(#<timeout-event nil>)
# bind (event)
byte-code("..." [id event next-event eval-event-p event-function
internal-make-dialog-box-exit event-object throw --cl-block-nil-- (nil)
dispatch-event] 3)
# (catch --cl-block-nil-- ...)
# bind (id sym)
byte-code("..." [thunk frames id sym eval gensym lambda (did) when eq quote
(did) mapc (quote enable-frame) (enqueue-eval-event (quote
internal-make-dialog-box-exit) did) remove-hook (quote
delete-dialog-box-hook) framep add-hook delete-frame-hook
delete-dialog-box-hook disable-frame --cl-block-nil-- (byte-code "Â
à !«Ä !Åa«Æ ! a«ÇÈÉ\"ªÊ !)ª\\" [id event next-event eval-event-p
event-function internal-make-dialog-box-exit event-object throw
--cl-block-nil-- ... dispatch-event] 3)] 11)
# (catch internal-dialog-box-finish ...)
# bind (frames thunk)
dialog-box-modal-loop((make-dialog-box-internal (quote question) (quote
(:title "ECB - Tip of the day" :question "You can quickly toggle auto.
expanding of the ECB-methods-buffer with
`ecb-toggle-auto-expand-tag-tree'." :buttons ...))))
# bind (cl-modal)
# (unwind-protect ...)
# bind (--letf-save--60171 --letf-bound--60172 cl-keys type)
make-dialog-box(question :title "ECB - Tip of the day" :modal t :question
"You can quickly toggle auto. expanding of the ECB-methods-buffer with
`ecb-toggle-auto-expand-tag-tree'." :buttons (["Close" (identity nil) t]))
# bind (button title button-text title-text message-str)
ecb-message-box("You can quickly toggle auto. expanding of the
ECB-methods-buffer with `ecb-toggle-auto-expand-tag-tree'." "Tip of the day"
"Close")
# bind (tip cursor)
ecb-show-tip-of-the-day()
# (condition-case ... . ((error)))
# bind (stack-trace-on-error)
ecb-activate--impl()
ecb-activate-internal()
# bind (new-state arg)
ecb-minor-mode(1)
ecb-activate()
ecb-auto-activate-hook()
run-hooks(ecb-auto-activate-hook)
# bind (error-data)
normal-top-level()
# (condition-case ... . error)
# (catch top-level ...)
[Trace 2]:
# bind (standard-output stack-trace-on-signal debug-on-signal
stack-trace-on-error debug-on-error)
byte-code("..." [obj eieio-class-definition 0 defclass] 2)
# (condition-case ... . ((error)))
# bind (field obj)
eieio-oref([object semantic-analyze-context "context" (166 . 170) (("foo1"
function ... ... #<extent [37, 62) semantic 0x8677c64 in buffer main.cpp>))
(function variable) nil [object semantic-scope-cache "Cache" [object
semanticdb-table "main.cpp" ... c++-mode ... t nil ... ... "main.cpp" 597
nil] ("main" function ... nil #<extent [64, 194) semantic 0x8677b4c in buffer
main.cpp>) nil nil nil nil (... ... ... ... ... ...)] #<buffer
"main.cpp">] :prefix)
# bind (context)
semantic-analyze-context([object semantic-analyze-context "context" (166 .
170) (("foo1" function ... ... #<extent [37, 62) semantic 0x8677c64 in buffer
main.cpp>)) (function variable) nil [object semantic-scope-cache
"Cache" [object semanticdb-table "main.cpp" ... c++-mode ... t nil ... ...
"main.cpp" 597 nil] ("main" function ... nil #<extent [64, 194) semantic
0x8677b4c in buffer main.cpp>) nil nil nil nil (... ... ... ... ... ...)]
#<buffer "main.cpp">])
apply(semantic-analyze-context [object semantic-analyze-context
"context" (166 . 170) (("foo1" function ... ... #<extent [37, 62) semantic
0x8677c64 in buffer main.cpp>)) (function variable) nil [object
semantic-scope-cache "Cache" [object semanticdb-table "main.cpp" ...
c++-mode ... t nil ... ... "main.cpp" 597 nil] ("main" function ... nil
#<extent [64, 194) semantic 0x8677b4c in buffer main.cpp>) nil nil nil nil
(... ... ... ... ... ...)] #<buffer "main.cpp">])
# bind (eieio-generic-call-next-method-list has-return-val
eieio-generic-call-key scoped-class rval lastval rvalever found newargs
mclass lambdas tlambdas keys eieio-generic-call-methodname
eieio-generic-call-arglst firstarg primarymethodlist args method)
eieio-generic-call(semantic-analyze-interesting-tag ([object
semantic-analyze-context "context" (166 . 170) (...) (function variable) nil
[object semantic-scope-cache "Cache" ... ... nil nil nil nil ...] #<buffer
"main.cpp">]))
# bind (local-args)
semantic-analyze-interesting-tag([object semantic-analyze-context
"context" (166 . 170) (("foo1" function ... ... #<extent [37, 62) semantic
0x8677c64 in buffer main.cpp>)) (function variable) nil [object
semantic-scope-cache "Cache" [object semanticdb-table "main.cpp" ...
c++-mode ... t nil ... ... "main.cpp" 597 nil] ("main" function ... nil
#<extent [64, 194) semantic 0x8677b4c in buffer main.cpp>) nil nil nil nil
(... ... ... ... ... ...)] #<buffer "main.cpp">])
# bind (analysis)
semantic-idle-summary-current-symbol-info-context()
# (unwind-protect ...)
# bind (semanticdb-find-default-throttle)
semantic-idle-summary-current-symbol-info-default()
# bind (override)
semantic-idle-summary-current-symbol-info()
semantic-idle-summary-idle-function()
# bind (--dolist-temp--52014 service)
# (unwind-protect ...)
# bind (mode safe others buffers inhibit-quit)
byte-code("..." [others buffers service semantic-current-input-throw-symbol
b semantic-idle-scheduler-max-buffer-size nil delq mapcar #<compiled-function
(b) "...(7)" [b buffer-file-name] 2> buffer-list 0 buffer-size
semantic-idle-scheduler-refresh-tags input-pending-p throw
parsing-mode-buffers idle-queue working-temp-message "IDLE: execture service
%s..." "IDLE: execture service %s...done" parsing-other-buffers
--dolist-temp--52013 --dolist-temp--52014 --dolist-temp--52015 mode
semantic-idle-scheduler-mode semantic-debug-enabled semantic-lex-debug safe
major-mode semantic-idle-scheduler-verbose-flag inhibit-quit
semantic-idle-scheduler-queue] 8)
# (catch idle-timer ...)
# bind (semantic-current-input-throw-symbol)
semantic-idle-core-handler()
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [match-data match-data ((store-match-data match-data))
semantic-idle-core-handler] 1)
# (condition-case ... . ((error (byte-code "ÁÂÃÄp!#\"Æ" ... 7))))
# (unwind-protect ...)
semantic-idle-scheduler-function()
apply(semantic-idle-scheduler-function nil)
# bind (time-elapsed itimers itimer next-wakeup last-event-time this-command
inhibit-quit quit-flag current-itimer)
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [this-command inhibit-quit quit-flag match-data itimer
current-itimer match-data ((store-match-data match-data)) nil
itimer-uses-arguments apply itimer-function itimer-function-arguments
last-event-time next-wakeup itimers time-elapsed] 5)
# (condition-case ... . ((error (byte-code "ÂÃÄ !!#" ... 5)) (quit
(byte-code "ÁÂ!\"" ... 4))))
# (unwind-protect ...)
# bind (itimers itimer next-wakeup idle-time last-event-time
recorded-run-time inhibit-quit time-elapsed)
itimer-run-expired-timers(0.160639)
# bind (sleep elapsed now itimer-inside-driver inhibit-quit ignored)
itimer-timer-driver(nil)
# (condition-case ... . error)
# (catch top-level ...)
[Trace 3]:
# bind (standard-output stack-trace-on-signal debug-on-signal
stack-trace-on-error debug-on-error class)
eieiomt-next(nil)
# bind (lambdas mclass class key method)
eieiomt-method-list(semantic-mrub-preflush 0 nil)
# bind (newargs mclass lambdas tlambdas keys eieio-generic-call-methodname
eieio-generic-call-arglst firstarg primarymethodlist args method)
eieio-generic-call(semantic-mrub-preflush (nil))
# bind (local-args)
semantic-mrub-preflush(nil)
# bind (--dolist-temp--52026 e elts buf)
semantic-mrub-cache-flush-fcn()
run-hooks(semantic-mrub-cache-flush-fcn)
semantic-clear-toplevel-cache()
# bind (semantic-unmatched-syntax-cache
semantic-unmatched-syntax-cache-check semantic-parser-warnings res
semantic-lex-block-streams gc-cons-threshold)
semantic-fetch-tags()
# (unwind-protect ...)
# (unwind-protect ...)
byte-code("..." [semantic-fetch-tags nil] 1)
# (catch idle-scheduler ...)
# bind (semantic-flex-unterminated-syntax-end-function
semantic-lex-unterminated-syntax-end-function)
# (unwind-protect ...)
# bind (lexically-safe working-status-percentage-type
working-status-dynamic-type working-use-echo-area-p inhibit-quit
semantic-working-type)
semantic-idle-scheduler-refresh-tags()
# (unwind-protect ...)
# bind (mode safe others buffers inhibit-quit)
byte-code("..." [others buffers service semantic-current-input-throw-symbol
b semantic-idle-scheduler-max-buffer-size nil delq mapcar #<compiled-function
(b) "...(7)" [b buffer-file-name] 2> buffer-list 0 buffer-size
semantic-idle-scheduler-refresh-tags input-pending-p throw
parsing-mode-buffers idle-queue working-temp-message "IDLE: execture service
%s..." "IDLE: execture service %s...done" parsing-other-buffers
--dolist-temp--52013 --dolist-temp--52014 --dolist-temp--52015 mode
semantic-idle-scheduler-mode semantic-debug-enabled semantic-lex-debug safe
major-mode semantic-idle-scheduler-verbose-flag inhibit-quit
semantic-idle-scheduler-queue] 8)
# (catch idle-timer ...)
# bind (semantic-current-input-throw-symbol)
semantic-idle-core-handler()
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [match-data match-data ((store-match-data match-data))
semantic-idle-core-handler] 1)
# (condition-case ... . ((error (byte-code "ÁÂÃÄp!#\"Æ" ... 7))))
# (unwind-protect ...)
semantic-idle-scheduler-function()
apply(semantic-idle-scheduler-function nil)
# bind (time-elapsed itimers itimer next-wakeup last-event-time this-command
inhibit-quit quit-flag current-itimer)
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [this-command inhibit-quit quit-flag match-data itimer
current-itimer match-data ((store-match-data match-data)) nil
itimer-uses-arguments apply itimer-function itimer-function-arguments
last-event-time next-wakeup itimers time-elapsed] 5)
# (condition-case ... . ((error (byte-code "ÂÃÄ !!#" ... 5)) (quit
(byte-code "ÁÂ!\"" ... 4))))
# (unwind-protect ...)
# bind (itimers itimer next-wakeup idle-time last-event-time
recorded-run-time inhibit-quit time-elapsed)
itimer-run-expired-timers(0.104025)
# bind (sleep elapsed now itimer-inside-driver inhibit-quit ignored)
itimer-timer-driver(nil)
# (condition-case ... . error)
# (catch top-level ...)
[Trace 4]:
# bind (standard-output stack-trace-on-signal debug-on-signal
stack-trace-on-error debug-on-error)
signal(wrong-type-argument (arrayp nil))
byte-code("..." [buf data kill-buffer signal] 3)
# bind (data)
# (unwind-protect ...)
# bind (error number truename buf rawfile nowarn filename)
find-file-noselect("~/Temp/semantic_test2/foo.cpp")
# bind (codesys filename)
find-file("~/Temp/semantic_test2/foo.cpp" nil)
# bind (command-debug-status)
call-interactively(find-file)
# (condition-case ... . error)
# (catch top-level ...)
|