emacs.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 19 Jan 2009 16:56:49 +0200
changeset 18 e35491992b62
child 19 2230f25e0375
permissions -rw-r--r--
up
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
-*- mode: outline -*-
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
* How debug?
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
When your InitFile has a bug, or when you load external files that cause
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
errors, the bug is often hard to find, because the Emacs Lisp reader does not
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
know about line numbers and files – it just knows an error happened, and
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
that’s it.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
You have several options:
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
  * Binary Search – select half of the file in a region, and M-x eval-region.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
  Depending on whether that causes the error or not, split this half or the
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
  other half again, and repeat.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
  * Simplified Binary Search – add (error “No error until here”) in the
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  middle of your file. If you get the error “No error until here” when
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
  reloading the file, move the expression towards the back of the file,
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
  otherwise towards the front of the file.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
  * Use a keyboard macro that moves forward one expression (sexp) and
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
  evaluates it.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  * Try the CommandLine? switch --debug-init.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
  * Shouldn’t (setq debug-on-error t) help?