From 7e5e0ed6b99c76089a77d61f56b4dc9f7ef2e5b3 Mon Sep 17 00:00:00 2001
From: Qianqian Fang <fangqq@gmail.com>
Date: Thu, 10 Feb 2022 15:15:12 -0500
Subject: [PATCH] print call stack when jdatadecode fails

---
 loadbj.m   | 3 ++-
 loadjson.m | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/loadbj.m b/loadbj.m
index ac6a5ae..a42ff32 100644
--- a/loadbj.m
+++ b/loadbj.m
@@ -154,7 +154,8 @@ function [data, mmap] = loadbj(fname,varargin)
             data=jdatadecode(data,'Base64',0,'Recursive',1,varargin{:});
         catch ME
             warning(['Failed to decode embedded JData annotations, '...
-                'return raw JSON data\n\nError: %s\n%s'], ME.identifier, ME.message);
+                'return raw JSON data\n\njdatadecode error: %s\n%s\nCall stack:\n%s\n'], ...
+                ME.identifier, ME.message, savejson('',ME.stack));
         end
     end
 end
diff --git a/loadjson.m b/loadjson.m
index f704a51..08db99f 100644
--- a/loadjson.m
+++ b/loadjson.m
@@ -196,7 +196,8 @@ function [data, mmap] = loadjson(fname,varargin)
             data=jdatadecode(data,'Base64',1,'Recursive',1,varargin{:});
         catch ME
             warning(['Failed to decode embedded JData annotations, '...
-                'return raw JSON data\n\nError: %s\n%s'], ME.identifier, ME.message);
+                'return raw JSON data\n\njdatadecode error: %s\n%s\nCall stack:\n%s\n'], ...
+                ME.identifier, ME.message, savejson('',ME.stack));
         end
     end
     
-- 
GitLab