So looking at the synchronized uncounting issue at least when it comes to exception handlers. I had a thought in my mind but it went away for a moment. Trying to get it back, but I believe the thought I had was related to the variables possibly being flagged as countable or not-countable incorrectly within an exception handler.


So the error happens in the parent method on the call stack when it tries to uncount the exception when it was thrown in the sub-method. So either it is uncounted to much in the child method or in the parent method. When it checks the exception after an INVOKEVIRTUAL it does an un-count on the exception it seems. I think that is not valid?


So the exceptions are placed in the exception register and those are just copied in the exception handler fragments.


Actually, this may just be related to finally blocks because there will be a finally done implicitly if an exception is thrown within a synchronized block.


Okay so, loadClass threw an exception... So I think what I actually need is to record the slices of a popped call, or at least the last one so I know what that one did.