Edit

kc3-lang/angle/util/system_utils.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2019-06-03 15:21:47
    Hash : 20d380fa
    Message : Print stack backtrace on critical failure. We reuse code from Skia to walk the stack on Posix platforms. See: https://github.com/google/skia/blob/master/tools/CrashHandler.cpp On Windows we use a BSD-licensed tool called StackWalker. See: https://github.com/JochenKalmbach/StackWalker This allows us to get high quality stack traces on Win/Linux/Mac. Bug: angleproject:3162 Change-Id: I9c50ede2c6a41ed0ee85a0507372df42a487bcef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632950 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • util/system_utils.h
  • //
    // Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    // system_utils.h: declaration of OS-specific utility functions
    
    #ifndef UTIL_SYSTEM_UTILS_H_
    #define UTIL_SYSTEM_UTILS_H_
    
    #include <string>
    
    #include "common/system_utils.h"
    #include "util/util_export.h"
    
    namespace angle
    {
    // Cross platform equivalent of the Windows Sleep function
    ANGLE_UTIL_EXPORT void Sleep(unsigned int milliseconds);
    
    ANGLE_UTIL_EXPORT void SetLowPriorityProcess();
    
    // Write a debug message, either to a standard output or Debug window.
    ANGLE_UTIL_EXPORT void WriteDebugMessage(const char *format, ...);
    
    // Set thread affinity and priority.
    ANGLE_UTIL_EXPORT bool StabilizeCPUForBenchmarking();
    
    // Set a crash handler to print stack traces.
    ANGLE_UTIL_EXPORT void InitCrashHandler();
    ANGLE_UTIL_EXPORT void TerminateCrashHandler();
    
    // Print a stack back trace.
    ANGLE_UTIL_EXPORT void PrintStackBacktrace();
    }  // namespace angle
    
    #endif  // UTIL_SYSTEM_UTILS_H_