Yes, I've actually just checked in a handler based on this into my internal 
Emscripten build, though as you say not every exception thrown will be a 
std::exception. I'm planning on adding the ability to inspect the vtable 
and only print based on some heuristic. 

On Monday, August 1, 2016 at 2:50:52 AM UTC-7, jj wrote:
>
> This is quite interesting. I presume this requires the exception to be 
> based on std::exception? If we could reliably detect this, it would 
> probably make sense to make this a built-in feature, since the meaning of 
> the thrown integers have been a common source of questions. Marked this 
> down as https://github.com/kripken/emscripten/issues/4456
>
> 2016-07-12 1:05 GMT+03:00 Charles Vaughn <[email protected] <javascript:>>:
>
>> I'm posting a snippet I use to convert the obscure exceptions messages 
>> when exception handling is disabled to a string value. Since this relies on 
>> re-entering the Emscripten environment after its in a bad state, it's 
>> possible that some exceptions can't be dumped this way, but for those that 
>> return simple strings, it should work.
>>
>> It works by looking up the 'what' function in the exceptions vtable.
>>
>> function whatEmscriptenException(ptr) {
>>     // 8 should be the vtable offset for the what function
>>     var fPtr = Module.HEAPU32[(Module.HEAPU32[(ptr) >> 2] + 8) >> 2];
>>     console.info(Module.AsciiToString(Module.dynCall_ii(fPtr, ptr)));
>> }
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to