1afdf842bSKuba Brecka //===-- InstrumentationRuntimeStopInfo.h ------------------------*- C++ -*-===// 2afdf842bSKuba Brecka // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6afdf842bSKuba Brecka // 7afdf842bSKuba Brecka //===----------------------------------------------------------------------===// 8afdf842bSKuba Brecka 9cdc514e4SJonas Devlieghere #ifndef LLDB_TARGET_INSTRUMENTATIONRUNTIMESTOPINFO_H 10cdc514e4SJonas Devlieghere #define LLDB_TARGET_INSTRUMENTATIONRUNTIMESTOPINFO_H 11afdf842bSKuba Brecka 12afdf842bSKuba Brecka #include <string> 13afdf842bSKuba Brecka 14b9c1b51eSKate Stone #include "lldb/Target/StopInfo.h" 15f2a8bccfSPavel Labath #include "lldb/Utility/StructuredData.h" 16afdf842bSKuba Brecka 17afdf842bSKuba Brecka namespace lldb_private { 18afdf842bSKuba Brecka 19b9c1b51eSKate Stone class InstrumentationRuntimeStopInfo : public StopInfo { 20afdf842bSKuba Brecka public: 21*fd2433e1SJonas Devlieghere ~InstrumentationRuntimeStopInfo() override = default; 22afdf842bSKuba Brecka GetStopReason()23b9c1b51eSKate Stone lldb::StopReason GetStopReason() const override { 24afdf842bSKuba Brecka return lldb::eStopReasonInstrumentation; 25afdf842bSKuba Brecka } 26afdf842bSKuba Brecka 27b9c1b51eSKate Stone const char *GetDescription() override; 289b03fa0cSJim Ingham DoShouldNotify(Event * event_ptr)29b9c1b51eSKate Stone bool DoShouldNotify(Event *event_ptr) override { return true; } 30afdf842bSKuba Brecka 31b9c1b51eSKate Stone static lldb::StopInfoSP CreateStopReasonWithInstrumentationData( 32b9c1b51eSKate Stone Thread &thread, std::string description, 33b9c1b51eSKate Stone StructuredData::ObjectSP additional_data); 34afdf842bSKuba Brecka 35afdf842bSKuba Brecka private: 36b9c1b51eSKate Stone InstrumentationRuntimeStopInfo(Thread &thread, std::string description, 37b9c1b51eSKate Stone StructuredData::ObjectSP additional_data); 38afdf842bSKuba Brecka }; 39afdf842bSKuba Brecka 40afdf842bSKuba Brecka } // namespace lldb_private 41afdf842bSKuba Brecka 42cdc514e4SJonas Devlieghere #endif // LLDB_TARGET_INSTRUMENTATIONRUNTIMESTOPINFO_H 43