// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/debug/dump_without_crashing.h" #include "base/logging.h" namespace { // Pointer to the function that's called by DumpWithoutCrashing() to dump the // process's memory. void(CDECL* dump_without_crashing_function_)() = nullptr; } // namespace namespace base { namespace debug { bool DumpWithoutCrashing() { if (dump_without_crashing_function_) { (*dump_without_crashing_function_)(); return true; } return false; } void SetDumpWithoutCrashingFunction(void (CDECL *function)()) { #if !defined(COMPONENT_BUILD) // In component builds, the same base is shared between modules // so might be initialized several times. However in non- // component builds this should never happen. DCHECK(!dump_without_crashing_function_); #endif dump_without_crashing_function_ = function; } } // namespace debug } // namespace base