Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/MsvcStl.h
213845 views
1
//===-- MsvcStl.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_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_MSVCSTL_H
10
#define LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_MSVCSTL_H
11
12
#include "lldb/DataFormatters/StringPrinter.h"
13
#include "lldb/DataFormatters/TypeSummary.h"
14
#include "lldb/Utility/Stream.h"
15
#include "lldb/ValueObject/ValueObject.h"
16
17
namespace lldb_private {
18
namespace formatters {
19
20
bool IsMsvcStlStringType(ValueObject &valobj);
21
22
template <StringPrinter::StringElementType element_type>
23
bool MsvcStlStringSummaryProvider(
24
ValueObject &valobj, Stream &stream,
25
const TypeSummaryOptions
26
&summary_options); // VC 2015+ std::string,u8string,u16string,u32string
27
28
bool MsvcStlWStringSummaryProvider(
29
ValueObject &valobj, Stream &stream,
30
const TypeSummaryOptions &options); // VC 2015+ std::wstring
31
32
// MSVC STL std::shared_ptr<> and std::weak_ptr<>
33
bool IsMsvcStlSmartPointer(ValueObject &valobj);
34
bool MsvcStlSmartPointerSummaryProvider(ValueObject &valobj, Stream &stream,
35
const TypeSummaryOptions &options);
36
37
lldb_private::SyntheticChildrenFrontEnd *
38
MsvcStlSmartPointerSyntheticFrontEndCreator(lldb::ValueObjectSP valobj_sp);
39
40
// MSVC STL std::unique_ptr<>
41
bool IsMsvcStlUniquePtr(ValueObject &valobj);
42
bool MsvcStlUniquePtrSummaryProvider(ValueObject &valobj, Stream &stream,
43
const TypeSummaryOptions &options);
44
45
lldb_private::SyntheticChildrenFrontEnd *
46
MsvcStlUniquePtrSyntheticFrontEndCreator(lldb::ValueObjectSP valobj_sp);
47
48
} // namespace formatters
49
} // namespace lldb_private
50
51
#endif
52
53