You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
673 B
21 lines
673 B
using System; |
|
using System.Runtime.Serialization; |
|
|
|
namespace UnityEngine.UI.Tests.Utils |
|
{ |
|
class ExceptionUtils |
|
{ |
|
public static void PreserveStackTrace(Exception e) |
|
{ |
|
var ctx = new StreamingContext(StreamingContextStates.CrossAppDomain); |
|
var mgr = new ObjectManager(null, ctx); |
|
var si = new SerializationInfo(e.GetType(), new FormatterConverter()); |
|
|
|
e.GetObjectData(si, ctx); |
|
mgr.RegisterObject(e, 1, si); // prepare for SetObjectData |
|
mgr.DoFixups(); // ObjectManager calls SetObjectData |
|
|
|
// voila, e is unmodified save for _remoteStackTraceString |
|
} |
|
} |
|
}
|
|
|