   (define-key map "B" 'rdebug-display-breakpoints-buffer)
   (define-key map "C" 'rdebug-display-cmd-buffer)
   (define-key map "D" 'rdebug-display-display-buffer)
+  (define-key map "O" 'rdebug-display-output-buffer)
   (define-key map "V" 'rdebug-display-variables-buffer)
   (define-key map "S" 'rdebug-display-stack-buffer)
   (define-key map "?" 'rdebug-display-secondary-window-help-buffer))

command invocation has an annotate options (\"--annotate 3\"."
  :type 'boolean
  :group 'rdebug)

(defcustom rdebug-restore-original-window-configuration :many
  "*Control if the original window layout is restored when the debugger exits.

      (puthash "stack"       'rdebug--setup-stack-buffer                 map)
      (puthash "variables"   'rdebug--setup-variables-buffer             map)
      (puthash "display"     'rdebug--setup-display-buffer               map)
      (puthash "output"      'rdebug--setup-output-buffer                map)
      (puthash "help"        'rdebug--setup-secondary-window-help-buffer map)
      map)))

(defun rdebug-process-annotation (name contents)
  (rdebug-debug-enter "rdebug-process-annotation"
  ;; Ruby-debug uses the name "starting" for process output (just like
  ;; GDB). However, it's better to present the buffer as "output" to
  ;; the user.
  (if (string= name "starting")
      (setq name "output"))
  (let ((buf (get-buffer-create (format "*rdebug-%s-%s*" name gud-target-name)))
        ;; Buffer local, doesn't survive the buffer change.
        (comint-buffer gud-comint-buffer))
