From b7e89f67e4b50499e9d839bbb92c2198a42bbcdd Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Thu, 8 Apr 2021 19:28:49 -0400 Subject: [PATCH] try to print backtraces when handlers fail --- src/jsonrpc2.ml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/jsonrpc2.ml b/src/jsonrpc2.ml index a069930e..4339c864 100644 --- a/src/jsonrpc2.ml +++ b/src/jsonrpc2.ml @@ -171,10 +171,11 @@ module Make(IO : IO) let protect ~id f = IO.catch f (fun e -> + let message = spf "%s\n%s" (Printexc.to_string e) (Printexc.get_backtrace()) in let r = Jsonrpc.Response.error id (Jsonrpc.Response.Error.make ~code:Jsonrpc.Response.Error.Code.InternalError - ~message:(Printexc.to_string e) ()) + ~message ()) in send_response self r) in @@ -222,11 +223,12 @@ module Make(IO : IO) IO.failwith (spf "cannot decode request: %s" e) end) (fun e -> + let message = spf "%s\n%s" (Printexc.to_string e) (Printexc.get_backtrace()) in let r = Jsonrpc.Response.error id (Jsonrpc.Response.Error.make ~code:Jsonrpc.Response.Error.Code.InternalError - ~message:(Printexc.to_string e) ()) + ~message ()) in send_response self r) in