Add more debug information in QuicStreamSequencer::DebugString:
- First missing byte
- Next expected byte
- Received frames
PiperOrigin-RevId: 485297419
diff --git a/quiche/quic/core/quic_stream_sequencer.cc b/quiche/quic/core/quic_stream_sequencer.cc
index fa76841..540c8c7 100644
--- a/quiche/quic/core/quic_stream_sequencer.cc
+++ b/quiche/quic/core/quic_stream_sequencer.cc
@@ -297,15 +297,18 @@
return NumBytesConsumed() + NumBytesBuffered() >= close_offset_;
}
-const std::string QuicStreamSequencer::DebugString() const {
+std::string QuicStreamSequencer::DebugString() const {
// clang-format off
- return absl::StrCat("QuicStreamSequencer:",
- "\n bytes buffered: ", NumBytesBuffered(),
- "\n bytes consumed: ", NumBytesConsumed(),
- "\n has bytes to read: ", HasBytesToRead() ? "true" : "false",
- "\n frames received: ", num_frames_received(),
- "\n close offset bytes: ", close_offset_,
- "\n is closed: ", IsClosed() ? "true" : "false");
+ return absl::StrCat(
+ "QuicStreamSequencer: bytes buffered: ", NumBytesBuffered(),
+ "\n bytes consumed: ", NumBytesConsumed(),
+ "\n first missing byte: ", buffered_frames_.FirstMissingByte(),
+ "\n next expected byte: ", buffered_frames_.NextExpectedByte(),
+ "\n received frames: ", buffered_frames_.ReceivedFramesDebugString(),
+ "\n has bytes to read: ", HasBytesToRead() ? "true" : "false",
+ "\n frames received: ", num_frames_received(),
+ "\n close offset bytes: ", close_offset_,
+ "\n is closed: ", IsClosed() ? "true" : "false");
// clang-format on
}
diff --git a/quiche/quic/core/quic_stream_sequencer.h b/quiche/quic/core/quic_stream_sequencer.h
index 9953c75..027b2e0 100644
--- a/quiche/quic/core/quic_stream_sequencer.h
+++ b/quiche/quic/core/quic_stream_sequencer.h
@@ -162,7 +162,7 @@
void set_stream(StreamInterface* stream) { stream_ = stream; }
// Returns string describing internal state.
- const std::string DebugString() const;
+ std::string DebugString() const;
private:
friend class test::QuicStreamSequencerPeer;
diff --git a/quiche/quic/core/quic_stream_sequencer_buffer.h b/quiche/quic/core/quic_stream_sequencer_buffer.h
index 4540db1..9b36ee1 100644
--- a/quiche/quic/core/quic_stream_sequencer_buffer.h
+++ b/quiche/quic/core/quic_stream_sequencer_buffer.h
@@ -159,6 +159,15 @@
// Returns number of bytes available to be read out.
size_t ReadableBytes() const;
+ // Returns offset of first missing byte.
+ QuicStreamOffset FirstMissingByte() const;
+
+ // Returns offset of highest received byte + 1.
+ QuicStreamOffset NextExpectedByte() const;
+
+ // Return all received frames as a string.
+ std::string ReceivedFramesDebugString() const;
+
private:
friend class test::QuicStreamSequencerBufferPeer;
@@ -198,15 +207,6 @@
// Get the index of the logical 1st block to start next read.
size_t NextBlockToRead() const;
- // Returns offset of first missing byte.
- QuicStreamOffset FirstMissingByte() const;
-
- // Returns offset of highest received byte + 1.
- QuicStreamOffset NextExpectedByte() const;
-
- // Return all received frames as a string.
- std::string ReceivedFramesDebugString() const;
-
// Resize blocks_ if more blocks are needed to accomodate bytes before
// next_expected_byte.
void MaybeAddMoreBlocks(QuicStreamOffset next_expected_byte);