LLDB mainline
|
A stream meant for asynchronously printing output. More...
#include <StreamAsynchronousIO.h>
Public Types | |
enum | ForSTDOUT : bool { STDOUT = true , STDERR = false } |
Public Types inherited from lldb_private::Stream | |
enum | { eBinary = (1 << 0) } |
m_flags bit values. More... |
Public Member Functions | |
StreamAsynchronousIO (Debugger &debugger, ForSTDOUT for_stdout) | |
~StreamAsynchronousIO () override | |
void | Flush () override |
Flush the stream. | |
Public Member Functions inherited from lldb_private::Stream | |
Stream (uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order, bool colors=false) | |
Construct with flags and address size and byte order. | |
Stream (bool colors=false) | |
Construct a default Stream, not binary, host byte order and host addr size. | |
Stream (const Stream &other) | |
Stream & | operator= (const Stream &rhs) |
virtual | ~Stream () |
Destructor. | |
size_t | Write (const void *src, size_t src_len) |
Output character bytes to the stream. | |
size_t | GetWrittenBytes () const |
size_t | PutChar (char ch) |
lldb::ByteOrder | SetByteOrder (lldb::ByteOrder byte_order) |
Set the byte_order value. | |
size_t | PrintfAsRawHex8 (const char *format,...) __attribute__((__format__(__printf__ |
Format a C string from a printf style format and variable arguments and encode and append the resulting C string as hex bytes. | |
size_t size_t | PutHex8 (uint8_t uvalue) |
Append an uint8_t value in the hexadecimal format to the stream. | |
size_t | PutNHex8 (size_t n, uint8_t uvalue) |
size_t | PutHex16 (uint16_t uvalue, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutHex32 (uint32_t uvalue, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutHex64 (uint64_t uvalue, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutMaxHex64 (uint64_t uvalue, size_t byte_size, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutFloat (float f, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutDouble (double d, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutLongDouble (long double ld, lldb::ByteOrder byte_order=lldb::eByteOrderInvalid) |
size_t | PutPointer (void *ptr) |
size_t | PutBytesAsRawHex8 (const void *src, size_t src_len, lldb::ByteOrder src_byte_order=lldb::eByteOrderInvalid, lldb::ByteOrder dst_byte_order=lldb::eByteOrderInvalid) |
size_t | PutRawBytes (const void *s, size_t src_len, lldb::ByteOrder src_byte_order=lldb::eByteOrderInvalid, lldb::ByteOrder dst_byte_order=lldb::eByteOrderInvalid) |
size_t | PutStringAsRawHex8 (llvm::StringRef s) |
Stream & | operator<< (const char *cstr) |
Output a NULL terminated C string cstr to the stream s. | |
Stream & | operator<< (llvm::StringRef str) |
Stream & | operator<< (const void *p) |
Output a pointer value p to the stream s. | |
Stream & | operator<< (char ch) |
Output a character ch to the stream s. | |
Stream & | operator<< (uint8_t uval)=delete |
Stream & | operator<< (uint16_t uval)=delete |
Stream & | operator<< (uint32_t uval)=delete |
Stream & | operator<< (uint64_t uval)=delete |
Stream & | operator<< (int8_t sval)=delete |
Stream & | operator<< (int16_t sval)=delete |
Stream & | operator<< (int32_t sval)=delete |
Stream & | operator<< (int64_t sval)=delete |
size_t | PutCString (llvm::StringRef cstr) |
Output a C string to the stream. | |
void | PutCStringColorHighlighted (llvm::StringRef text, std::optional< HighlightSettings > settings=std::nullopt) |
Output a C string to the stream with color highlighting. | |
size_t | EOL () |
Output and End of Line character to the stream. | |
uint32_t | GetAddressByteSize () const |
Get the address size in bytes. | |
Flags & | GetFlags () |
The flags accessor. | |
const Flags & | GetFlags () const |
The flags const accessor. | |
lldb::ByteOrder | GetByteOrder () const |
unsigned | GetIndentLevel () const |
Get the current indentation level. | |
size_t | Indent (llvm::StringRef s="") |
Indent the current line in the stream. | |
void | IndentLess (unsigned amount=2) |
Decrement the current indentation level. | |
void | IndentMore (unsigned amount=2) |
Increment the current indentation level. | |
void | Offset (uint32_t offset, const char *format="0x%8.8x: ") |
Output an offset value. | |
size_t | Printf (const char *format,...) __attribute__((format(printf |
Output printf formatted output to the stream. | |
size_t size_t | PrintfVarArg (const char *format, va_list args) |
template<typename... Args> | |
void | Format (const char *format, Args &&... args) |
void | QuotedCString (const char *cstr, const char *format="\"%s\"") |
Output a quoted C string value to the stream. | |
void | SetAddressByteSize (uint32_t addr_size) |
Set the address size in bytes. | |
void | SetIndentLevel (unsigned level) |
Set the current indentation level. | |
size_t | PutSLEB128 (int64_t uval) |
Output a SLEB128 number to the stream. | |
size_t | PutULEB128 (uint64_t uval) |
Output a ULEB128 number to the stream. | |
llvm::raw_ostream & | AsRawOstream () |
Returns a raw_ostream that forwards the data to this Stream object. |
Protected Member Functions | |
size_t | WriteImpl (const void *src, size_t src_len) override |
Output character bytes to the stream. | |
Protected Member Functions inherited from lldb_private::Stream | |
void | _PutHex8 (uint8_t uvalue, bool add_prefix) |
Private Attributes | |
Debugger & | m_debugger |
std::string | m_data |
ForSTDOUT | m_for_stdout |
Additional Inherited Members | |
Protected Attributes inherited from lldb_private::Stream | |
Flags | m_flags |
Dump flags. | |
uint32_t | m_addr_size = 4 |
Size of an address in bytes. | |
lldb::ByteOrder | m_byte_order |
Byte order to use when encoding scalar types. | |
unsigned | m_indent_level = 0 |
Indention level. | |
std::size_t | m_bytes_written = 0 |
Number of bytes written so far. | |
RawOstreamForward | m_forwarder |
A stream meant for asynchronously printing output.
Output is buffered until the stream is flushed or destroyed. Printing is handled by the currently active IOHandler, or the debugger's output or error stream if there is none.
Definition at line 24 of file StreamAsynchronousIO.h.
Enumerator | |
---|---|
STDOUT | |
STDERR |
Definition at line 26 of file StreamAsynchronousIO.h.
StreamAsynchronousIO::StreamAsynchronousIO | ( | Debugger & | debugger, |
StreamAsynchronousIO::ForSTDOUT | for_stdout ) |
Definition at line 17 of file StreamAsynchronousIO.cpp.
References lldb::eByteOrderBig, m_data, m_debugger, m_for_stdout, and lldb_private::Stream::Stream().
|
override |
Definition at line 22 of file StreamAsynchronousIO.cpp.
References Flush().
|
overridevirtual |
Flush the stream.
Subclasses should flush the stream to make any output appear if the stream has any buffering.
Implements lldb_private::Stream.
Definition at line 27 of file StreamAsynchronousIO.cpp.
References m_data, m_debugger, and m_for_stdout.
Referenced by ~StreamAsynchronousIO().
|
overrideprotectedvirtual |
Output character bytes to the stream.
Appends src_len characters from the buffer src to the stream.
[in] | src | A buffer containing at least src_len bytes of data. |
[in] | src_len | A number of bytes to append to the stream. |
Implements lldb_private::Stream.
Definition at line 34 of file StreamAsynchronousIO.cpp.
References m_data.
|
private |
Definition at line 42 of file StreamAsynchronousIO.h.
Referenced by Flush(), StreamAsynchronousIO(), and WriteImpl().
|
private |
Definition at line 41 of file StreamAsynchronousIO.h.
Referenced by Flush(), and StreamAsynchronousIO().
|
private |
Definition at line 43 of file StreamAsynchronousIO.h.
Referenced by Flush(), and StreamAsynchronousIO().