Files
Caleb Sandford deQuincey 334021d04e Started project
2025-11-14 17:30:41 +00:00

22 lines
673 B
C#

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
}
}
}