1ce0c41cbSdavidtrevelyan //===--- rtsan_diagnostics.h - Realtime Sanitizer ---------------*- C++ -*-===// 2ce0c41cbSdavidtrevelyan // 3ce0c41cbSdavidtrevelyan // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4ce0c41cbSdavidtrevelyan // See https://llvm.org/LICENSE.txt for license information. 5ce0c41cbSdavidtrevelyan // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6ce0c41cbSdavidtrevelyan // 7ce0c41cbSdavidtrevelyan //===----------------------------------------------------------------------===// 8ce0c41cbSdavidtrevelyan // 9ce0c41cbSdavidtrevelyan // Part of the RealtimeSanitizer runtime library 10ce0c41cbSdavidtrevelyan // 11ce0c41cbSdavidtrevelyan //===----------------------------------------------------------------------===// 12ce0c41cbSdavidtrevelyan 13ce0c41cbSdavidtrevelyan #pragma once 14ce0c41cbSdavidtrevelyan 151b601938SChris Apple #include "sanitizer_common/sanitizer_common.h" 16ce0c41cbSdavidtrevelyan #include "sanitizer_common/sanitizer_internal_defs.h" 17ce0c41cbSdavidtrevelyan 18ce0c41cbSdavidtrevelyan namespace __rtsan { 191b601938SChris Apple 20216e1b90Sdavidtrevelyan enum class DiagnosticsInfoType { 21216e1b90Sdavidtrevelyan InterceptedCall, 22216e1b90Sdavidtrevelyan BlockingCall, 231b601938SChris Apple }; 241b601938SChris Apple 251b601938SChris Apple struct DiagnosticsInfo { 26216e1b90Sdavidtrevelyan DiagnosticsInfoType type; 27216e1b90Sdavidtrevelyan const char *func_name; 281b601938SChris Apple __sanitizer::uptr pc; 291b601938SChris Apple __sanitizer::uptr bp; 301b601938SChris Apple }; 311b601938SChris Apple 321b601938SChris Apple void PrintDiagnostics(const DiagnosticsInfo &info); 33*7c41b5ccSChris Apple void PrintErrorSummary(const DiagnosticsInfo &info, 34*7c41b5ccSChris Apple const __sanitizer::BufferedStackTrace &stack); 35ce0c41cbSdavidtrevelyan } // namespace __rtsan 36