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 17namespace lldb_private { 18 19class InstrumentationRuntimeStopInfo : public StopInfo { 20public: 21 ~InstrumentationRuntimeStopInfo() override = default; 22 23 lldb::StopReason GetStopReason() const override { 24 return lldb::eStopReasonInstrumentation; 25 } 26 27 const char *GetDescription() override; 28 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 35private: 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