emacs-devel
[Top][All Lists]
Advanced

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

Re: flymake mode freezes emacs


From: Ralf Schmitt
Subject: Re: flymake mode freezes emacs
Date: Wed, 08 Aug 2007 12:02:23 +0200
User-agent: Icedove 1.5.0.12 (X11/20070731)

Richard Stallman wrote:
You can debug the Lisp level with GDB.  We need to know the regexp.
You can find it by examining the first arg of the search or match
function using pr.

#3 0x00000000004f685d in string_match_1 (regexp=19448755, string=22042099, start=<value optimized out>,
         posix=0) at search.c:457
#4 0x000000000051d004 in Ffuncall (nargs=<value optimized out>, args=<value optimized out>) at eval.c:3036

Type

   f 4
   p args[1]
   pr

We also need to know where it is looping.  You can find that
by following the instructions in etc/DEBUG about looping.

#26 0x00000000005187e4 in read_key_sequence (keybuf=0x7fff56c3d730,
    bufsize=30, prompt=11217297, dont_downcase_last=0,
    can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:9380
#27 0x0000000000508b20 in command_loop_1 () at keyboard.c:1696
#28 0x00000000005a42d5 in internal_condition_case (
    bfun=0x508798 <command_loop_1>, handlers=11331057,
    hfun=0x5080d2 <cmd_error>) at eval.c:1488
#29 0x00000000005084ba in command_loop_2 () at keyboard.c:1405
#30 0x00000000005a3c95 in internal_catch (tag=11305313,
---Type <return> to continue, or q <return> to quit---q
func=0x5084a0 <command_lQuit
) at eval.c:1223
#31 0x0000000000508474 in command_loop () at keyboard.c:1384
#32 0x0000000000507c19 in recursive_edit_1 () at keyboard.c:993
#33 0x0000000000507dbc in Frecursive_edit () at keyboard.c:1055
#34 0x0000000000506366 in main (argc=2, argv=0x7fff56c3e0e8) at emacs.c:1772

Lisp Backtrace:
"string-match" (0x12afbf3)
"flymake-parse-line" (0x158a523)
"flymake-parse-err-lines" (0xab2991)
"flymake-parse-output-and-residual" (0x158ad53)
"flymake-process-filter" (0x15ca604)
(gdb) f 5
#5  0x00000000005a7073 in Ffuncall (nargs=3, args=0x7fff56c3a060)
    at eval.c:3036
3036 val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
(gdb) p args[1]
$1 = 19594227
(gdb) pr
" *\\(\\[javac\\]\\)? *\\(\\([a-zA-Z]:\\)?[^:(
]+\\):\\([0-9]+\\):[
]*\\(.+\\)"
(gdb)


If I remove the javac regexp from flymake.el everything is fine. I guess it does have problems matching all those whitespace (and it does not loop excessively as I first expected).

BTW, the gdb integration is very nice. Does anyone know about a similar .gdbinit for python?


Regards,
- Ralf

diff -r 09aac0f1e323 flymake.el
--- a/flymake.el        Wed Aug 08 11:50:47 2007 +0200
+++ b/flymake.el        Wed Aug 08 11:53:49 2007 +0200
@@ -918,8 +918,7 @@ Convert it to flymake internal format."
      ("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1)
;; LaTeX warnings (fileless) ("\\(LaTeX \\(Warning\\|Error\\): .*\\) on input line \\([0-9]+\\)" 20 3 nil 1)
      ;; ant/javac
- (" *\\(\\[javac\\]\\)? *\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:[ \t\n]*\\(.+\\)"
-      2 4 nil 5))
+     )
    ;; compilation-error-regexp-alist)
(flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist))
   "Patterns for matching error/warning lines.  Each pattern has the form





reply via email to

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