LLDB mainline
CxxStringTypes.h
Go to the documentation of this file.
1//===-- CxxStringTypes.h ----------------------------------------------*- C++
2//-*-===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_CXXSTRINGTYPES_H
11#define LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_CXXSTRINGTYPES_H
12
15#include "lldb/Utility/Stream.h"
17
18namespace lldb_private {
19namespace formatters {
20bool Char8StringSummaryProvider(ValueObject &valobj, Stream &stream,
21 const TypeSummaryOptions &options); // char8_t*
22
24 ValueObject &valobj, Stream &stream,
25 const TypeSummaryOptions &options); // char16_t* and unichar*
26
28 ValueObject &valobj, Stream &stream,
29 const TypeSummaryOptions &options); // char32_t*
30
31bool WCharStringSummaryProvider(ValueObject &valobj, Stream &stream,
32 const TypeSummaryOptions &options); // wchar_t*
33
34bool Char8SummaryProvider(ValueObject &valobj, Stream &stream,
35 const TypeSummaryOptions &options); // char8_t
36
38 ValueObject &valobj, Stream &stream,
39 const TypeSummaryOptions &options); // char16_t and unichar
40
41bool Char32SummaryProvider(ValueObject &valobj, Stream &stream,
42 const TypeSummaryOptions &options); // char32_t
43
44bool WCharSummaryProvider(ValueObject &valobj, Stream &stream,
45 const TypeSummaryOptions &options); // wchar_t
46
47std::optional<uint64_t> GetWCharByteSize(ValueObject &valobj);
48
49/// Print a summary for a string buffer to \a stream.
50///
51/// \param[in] stream
52/// The output stream to print the summary to.
53///
54/// \param[in] summary_options
55/// Options for printing the string contents. This function respects the
56/// capping.
57///
58/// \param[in] location_sp
59/// ValueObject of a pointer to the string being printed.
60///
61/// \param[in] size
62/// The size of the buffer pointed to by \a location_sp.
63///
64/// \param[in] prefix_token
65/// A prefix before the double quotes (e.g. 'u' results in u"...").
66///
67/// \return
68/// Returns whether the string buffer was successfully printed.
69template <StringPrinter::StringElementType element_type>
70bool StringBufferSummaryProvider(Stream &stream,
71 const TypeSummaryOptions &summary_options,
72 lldb::ValueObjectSP location_sp, uint64_t size,
73 std::string prefix_token);
74
75} // namespace formatters
76} // namespace lldb_private
77
78#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_CXXSTRINGTYPES_H
bool Char32StringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool WCharSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
std::optional< uint64_t > GetWCharByteSize(ValueObject &valobj)
bool StringBufferSummaryProvider(Stream &stream, const TypeSummaryOptions &summary_options, lldb::ValueObjectSP location_sp, uint64_t size, std::string prefix_token)
Print a summary for a string buffer to stream.
bool Char8SummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool Char16SummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool Char8StringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool Char16StringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool WCharStringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
bool Char32SummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP