If you find problems with Org, or if you have questions, remarks, or ideas about it, please send an email to the Org mailing list mailto:emacs-orgmode@gnu.org. You can subscribe to the list from this web page. If you are not a member of the mailing list, your mail will be passed to the list after a moderator has approved it2. We ask you to read and respect the GNU Kind Communications Guidelines when sending messages on this mailing list. Please allow up to one month for the response and followup if no response is received on the bug report.
For bug reports, please first try to reproduce the bug with the latest version of Org available—if you are running an outdated version, it is quite possible that the bug has been fixed already. If the bug persists, prepare a report and provide as much information as possible, including the version information of Emacs (M-x emacs-version) and Org (M-x org-version), as well as the Org related setup in the Emacs init file. The easiest way to do this is to use the command
M-x org-submit-bug-report <RET>
which puts all this information into an Emacs mail buffer so that you only need to add your description. If you are not sending the Email from within Emacs, please copy and paste the content into your Email program.
Sometimes you might face a problem due to an error in your Emacs or Org mode setup. Before reporting a bug, it is very helpful to start Emacs with minimal customizations and reproduce the problem. Doing so often helps you determine if the problem is with your customization or with Org mode itself. You can start a typical minimal session with a command like the example below.
$ emacs -Q -l /path/to/minimal-org.el
However if you are using Org mode as distributed with Emacs, a minimal setup is not necessary. In that case it is sufficient to start Emacs as ‘emacs -Q’. The ‘minimal-org.el’ setup file can have contents as shown below.
;;; Minimal setup to load latest `org-mode'. ;; Activate debugging. (setq debug-on-error t debug-on-signal nil debug-on-quit nil) ;; Add latest Org mode to load path. (add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp"))
If you are using Org mode version from Git repository, you can start minimal session using make.
# Bare Emacs make repro # or pass extra arguments make repro REPRO_ARGS="-l /path/to/minimal/config.el /tmp/bug.org"
If an error occurs, a “backtrace” can be very useful—see below on how to create one. Often a small example file helps, along with clear information about:
If you experience degraded performance, you can record a “profile” and share it on the Org mailing list. See below for the instructions how to record a useful profile.
Thank you for helping to improve this program.
If working with Org produces an error with a message you do not understand, you may have hit a bug. The best way to report this is by providing, in addition to what was mentioned above, a backtrace. This is information from the built-in debugger about where and how the error occurred. Here is how to produce a useful backtrace:
C-u M-x org-reload <RET>
or, from the menu: Org → Refresh/Reload → Reload Org uncompiled.
M-x toggle-debug-on-error <RET>
or, from the menu: Options → Enter Debugger on Error.
Sometimes, Org is becoming slow for no apparent reason. Such slowdown is often caused by interaction between third-party packages and Org mode. However, identifying the root cause is not always straightforward.
Emacs is able to record performance statistics, which can then be used to find out which functions are taking most of the time to execute. To record the statistics, one can use so-called profiler. To use the Emacs profiler, we recommend the following steps:
M-x profiler-stop <RET>
M-x profiler-start <RET> cpu <RET>
M-x profiler-report <RET>
This command will display a summary of the commands and functions
that have been executed between profiler-start
and
profiler-report
invocations, with command taking most of the time
displayed on top.
‘<TAB>’ key can be used to fold and unfold lines in the profiler buffer. The child items revealed upon unfolding are the functions and commands called by the unfolded parent.
The root causes are often buried deep inside sub-children items in
the profiler. You can press ‘B’ (profiler-report-render-reversed-calltree
)
to quickly reveal the actual function/command that takes most of
the time to run.
Pressing ‘C’ profiler-report-render-calltree
will recover the
original view.
Just save the data by issuing
M-x profiler-report-write-profile <RET> /path/to/profile-file-to-be-saved <RET>
Then, you can attached the saved file to your email to the Org mailing list, alongside with details about what you did to trigger the slowdown.
Note that the saved statistics will only contain the function names and how long their execution takes. No private data will be recorded.
Please consider subscribing to the mailing list in order to minimize the work the mailing list moderators have to do.