| 188 | |
| 189 | |
| 190 | std::string getExceptionStackTraceString(const std::exception & e) |
| 191 | { |
| 192 | /// Explicitly block MEMORY_LIMIT_EXCEEDED |
| 193 | LockMemoryExceptionInThread lock(VariableContext::Global); |
| 194 | |
| 195 | auto * stack_trace_frames = e.get_stack_trace_frames(); |
| 196 | auto stack_trace_size = e.get_stack_trace_size(); |
| 197 | __msan_unpoison(stack_trace_frames, stack_trace_size * sizeof(stack_trace_frames[0])); |
| 198 | return StackTrace::toString(stack_trace_frames, 0, stack_trace_size); |
| 199 | } |
| 200 | |
| 201 | std::string getExceptionStackTraceString(std::exception_ptr e) |
| 202 | { |
no test coverage detected