Path: blob/main/contrib/llvm-project/lldb/source/Plugins/InstrumentationRuntime/ASan/InstrumentationRuntimeASan.h
39645 views
//===-- InstrumentationRuntimeASan.h ----------------------------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H9#define LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H1011#include "lldb/Target/InstrumentationRuntime.h"1213namespace lldb_private {1415class InstrumentationRuntimeASan : public lldb_private::InstrumentationRuntime {16public:17~InstrumentationRuntimeASan() override;1819static lldb::InstrumentationRuntimeSP20CreateInstance(const lldb::ProcessSP &process_sp);2122static void Initialize();2324static void Terminate();2526static llvm::StringRef GetPluginNameStatic() { return "AddressSanitizer"; }2728static lldb::InstrumentationRuntimeType GetTypeStatic();2930llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }3132virtual lldb::InstrumentationRuntimeType GetType() { return GetTypeStatic(); }3334private:35InstrumentationRuntimeASan(const lldb::ProcessSP &process_sp)36: lldb_private::InstrumentationRuntime(process_sp) {}3738const RegularExpression &GetPatternForRuntimeLibrary() override;3940bool CheckIfRuntimeIsValid(const lldb::ModuleSP module_sp) override;4142void Activate() override;4344void Deactivate();4546static bool NotifyBreakpointHit(void *baton,47StoppointCallbackContext *context,48lldb::user_id_t break_id,49lldb::user_id_t break_loc_id);50};5152} // namespace lldb_private5354#endif // LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H555657