diff --git a/src/scm/main.scm b/src/scm/main.scm index 2f3a85a15b..8ab94eb452 100644 --- a/src/scm/main.scm +++ b/src/scm/main.scm @@ -130,8 +130,18 @@ (define (gnc:backtrace-if-exception proc . args) (define (dumper key . args) (let ((stack (make-stack #t dumper))) + ;; Send debugging output to the console. (display-backtrace stack (current-error-port)) (apply display-error stack (current-error-port) args) + + ;; Send debugging output to the log. + (if (defined? 'gnc:warn) + (let ((string-port (open-output-string))) + (display-backtrace stack string-port) + (apply display-error stack string-port args) + (gnc:warn (get-output-string string-port)) + (close-output-port string-port))) + (throw 'ignore))) (catch