Diff
Not logged in

Differences From Artifact [02abce9abb958e1c]:

To Artifact [059fc11fc8a1312c]:


232 info.length = info.length + 1; 232 info.length = info.length + 1; 233 info[info.length-1] = str; 233 info[info.length-1] = str; 234 } 234 } 235 } 235 } 236 } 236 } 237 237 238 static Throwable.TraceInfo TraceHandler(void* ptr){ 238 static Throwable.TraceInfo TraceHandler(void* ptr){ > 239 // modified by k.inaba to avoid a throw inside std.demangle.dema > 240 // not quite thread safe > 241 Runtime.traceHandler(&core.runtime.defaultTraceHandler); > 242 scope(exit) Runtime.traceHandler(&TraceHandler); > 243 239 StackTrace trace = new StackTrace(); | 244 StackTrace trace = new StackTrace(); 240 return trace.GetCallstack(); | 245 return trace.GetCallstack(); 241 } 246 } 242 247 243 public: 248 public: 244 static this(){ 249 static this(){ 245 Runtime.traceHandler(&TraceHandler); 250 Runtime.traceHandler(&TraceHandler); 246 SetUnhandledExceptionFilter(&UnhandeledExceptionFilterHandler); 251 SetUnhandledExceptionFilter(&UnhandeledExceptionFilterHandler); 247 } 252 } ................................................................................................................................................................................ 360 } 365 } 361 } 366 } 362 367 363 free(Symbol); 368 free(Symbol); 364 return stack; 369 return stack; 365 } 370 } 366 }; 371 }; > 372