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