have started looking at decompiling ELISP bytecode using the techniques from uncompyle6 . 

So far the results are promising. Of course one isn't going to get the exact source text back. 

For the bytecode for source text

   (setq a nil)
   (setq b nil)

when decompiled gives the equivalent: 

      (setq a (setq b nil))

And macros will be in their expanded form. But I believe nevertheless programmers will have a very good idea of what was going on when an error was raised.