emacs.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 25 Aug 2009 19:27:16 +0300
changeset 182 5e9ea846a8c3
parent 179 e225b746945d
parent 181 4202927c15ac
child 212 5715a5193fd4
child 219 a6a5839b7423
permissions -rw-r--r--
Merged conflict.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
179
e225b746945d Correct encoding.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 177
diff changeset
     1
-*- mode: outline; coding: utf-8 -*-
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     3
* Debugging.
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     4
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     5
** Using edebug.
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     6
177
02b79b857ee1 Use plain ascii chars instead of UTF-8.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 171
diff changeset
     7
Execute 'M-x edebug-defun' (also on 'C-u C-M-x') on defun in source code to
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     8
enable debugging for desired function. When next time this function invoked
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
     9
you entered to its debugging (jamped to its source code).
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    10
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    11
To start debug execute code which used debugged function.
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    13
You can disable edebug on a function by evaluating the function again using
177
02b79b857ee1 Use plain ascii chars instead of UTF-8.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 171
diff changeset
    14
'C-M-x'.
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    15
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    16
** How debug func?
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    17
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    18
Use M-x debug-on-entry and M-x cancel-debug-on-entry to control
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    19
which functions will enter the debugger when called.
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    20
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    21
When next time that function called automatically loaded debug-mode.
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    22
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    23
** How debug ini file?
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
When your InitFile has a bug, or when you load external files that cause
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
errors, the bug is often hard to find, because the Emacs Lisp reader does not
179
e225b746945d Correct encoding.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 177
diff changeset
    27
know about line numbers and files - it just knows an error happened, and
e225b746945d Correct encoding.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 177
diff changeset
    28
that's it.
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    30
*** Binary Search.
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
86
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    32
Select half of the file in a region, and M-x eval-region. Depending on whether
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    33
that causes the error or not, split this half or the other half again, and
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    34
repeat.
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    35
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    36
*** Elisp.
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
86
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    38
 - Use a keyboard macro that moves forward one expression (sexp) and evaluates
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    39
   it.
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    40
 - Try C-x check-parens.
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    41
 - Set (setq debug-on-error t).
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    42
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    43
*** CLI.
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
86
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    45
  $ emacs --no-init-file --no-site-file --debug-init
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    46
171
8e806cddee36 Debugging emacs (about edebug).
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    47
*** Simplified Binary Search.
19
2230f25e0375 add about edebug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 18
diff changeset
    48
177
02b79b857ee1 Use plain ascii chars instead of UTF-8.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 171
diff changeset
    49
Add (error 'No error until here') in the middle of your file. If you get the
02b79b857ee1 Use plain ascii chars instead of UTF-8.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 171
diff changeset
    50
error 'No error until here' when reloading the file, move the expression
86
72175e4fc069 Reformat and add CLI switches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 44
diff changeset
    51
towards the back of the file, otherwise towards the front of the file.
181
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    52
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    53
* WWW.
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    54
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    55
** Text based WWW browser.
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    56
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    57
  http://en.wikipedia.org/wiki/W3m
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    58
  http://emacs-w3m.namazu.org/
4202927c15ac Text based WWW browser for emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 86
diff changeset
    59
  http://www.gnu.org/software/w3/