Reply::~Reply() { if (getCallStack().size() > 0) { string backtrace = vespalib::getStackTrace(0); LOG(warning, "Deleted reply %p with non-empty call-stack. Deleted at:\n%s", this, backtrace.c_str()); Reply::UP reply(new EmptyReply()); swapState(*reply); reply->addError(Error(ErrorCode::FATAL_ERROR, "The reply object was deleted while containing state information; " "generating an auto-reply.")); IReplyHandler &handler = reply->getCallStack().pop(*reply); handler.handleReply(std::move(reply)); } }
void dump_stack(void) { getCallStack(); ALOGI("-----------------"); do_backtrace(); }