Right now when we hit OOM we simply invoke abort(), an LLVM intrinsic for an undefined instruction to kill the program. This led me to having to run an unoptimized rustc in GDB for 4+ hours just to figure out the backtrace pointed at alloc::heap::reallocate.
We should make OOM easier to debug by at least printing a message. Note, however, that the current OOM strategy was done to allow LLVM to optimize allocations, so we need to balance our priorities with that.
Right now when we hit OOM we simply invoke
abort(), an LLVM intrinsic for an undefined instruction to kill the program. This led me to having to run an unoptimized rustc in GDB for 4+ hours just to figure out the backtrace pointed atalloc::heap::reallocate.We should make OOM easier to debug by at least printing a message. Note, however, that the current OOM strategy was done to allow LLVM to optimize allocations, so we need to balance our priorities with that.