Re: [cedet-semantic] Semantic and jumping (was: Semantic issue and questions )
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2008-02-25 21:27:26
|
>>> Michael Reiher <re...@gm...> seems to think 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 :) That's odd. While I agree with your assessment, I had breakpoints set that showed I was getting past that line. Ill take out the interactive check. I will make the bookmarking happen much more often. >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" This stack, along with others below, shows that a 'nil' somehow got into the bookmark ring. You can use: M-x semantic-adebug-mrub RET and expand the ring to verify that somehow a nil got into the ring. >> >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 );". Well, I guess that's good. >For the idle error, I get the following stack trace: [Trace 1] (see below). This is a nil in the bookmark ring again. >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]). Also a nil in the bookmark ring. >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 Trace 4 seems to be missing something. Must be a hook with an in-line lambda expression. The only one I would suspect is the imenu setup hook in semantic-load.el. If you don't use imenu, you could comment that out and see if that makes things more stable. >stack-trace-on-signal I get quite a few of them. Are these all errors, or is >this normal, e.g. [Trace 2]? I will endeavor to debug this some more to see what I can come up with. I'm particularly confused how nil got into the ring. Eric -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |