From: Michael W. D. <mw...@ce...> - 2012-09-10 12:19:49
|
Alan Mackenzie <ac...@mu...> writes: > Hello again, Michael! > > On Thu, Sep 06, 2012 at 11:45:48PM -0400, Michael Welsh Duggan wrote: >> Alan Mackenzie <ac...@mu...> writes: > >> > Hello, Kim. > >> > On Mon, Sep 03, 2012 at 11:47:00AM +0200, Kim Storm wrote: >> >> On 2012-09-02 23:16, Alan Mackenzie wrote: >> >> > Yes. It looks like the "state cache" (a cache of certain brace, paren >> >> > and bracket positions) has got corrupted. >> >> > This is difficult to make repeatable, and is very dependent upon the >> >> > exact navigation taken around the C buffer. >> >> Well - my navigation triggers that bug a lot. > >> > It's strange that it doesn't seem to be happening much to other people. > >> It happens to me irregularly. > > Once a week? Once a day? Is it associated with buffer changes, or does > it just happen? It happens when I'm editing C code. I can't say once a week/day, etc., because I don't edit C code every day. Most days I don't see it at all. When it does happen, it is either extremely ephemeral (and goes away immediately), or happens frequently in the same file, and I have to reload the file completely just to get back to status quo. It's very hard to characterize. (It used to happen a lot more often before you fixed this in a few places.) >> There is generally no way to re-create it, so I've stopped reporting >> these. I wish there were some way to record all actions in c-mode >> buffers such that they could be saved and re-played when this type of >> problem happens. If there were some sort of debug flag I could turn >> on, I would turn it on by default and hopefully be able to catch some >> useful information. > > M-x c-toggle-parse-state-debug > > (or (c-toggle-parse-state-debug 1) in your .emacs). Warning: variable > `c-debug-parse-state' is not buffer local. I wrote this on 19th October > last year to help sort out the bug you reported a little earlier. :-) > > It works by calculating c-parse-state twice for each call - The first > time normally, then again with the internal state bound to "newly > initialised". If the the two results differ, they are printed to > *Messages*, together with the saved previous state. If this does > trigger, please note any recent buffer changes. It may make editing > intolerably slow. I will turn this on. -- Michael Welsh Duggan (mw...@ce...) |