diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2014-09-22 19:19:34 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2014-09-22 19:19:34 +0100 |
| commit | e440adbcf440ca59c68a65bad9213c313b9a0f7d (patch) | |
| tree | c131c201ca5fe7dfa9929b0429a0e7006bedd6c3 /src/buffer.cc | |
| parent | 1296b5d46acc7d4e2951b794b9986c08479f1100 (diff) | |
add a 'buffers' debug command to get info on alive buffers
Diffstat (limited to 'src/buffer.cc')
| -rw-r--r-- | src/buffer.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/buffer.cc b/src/buffer.cc index e22a29cb..7c7a4e63 100644 --- a/src/buffer.cc +++ b/src/buffer.cc @@ -519,4 +519,33 @@ ByteCoord Buffer::last_modification_coord() const return m_history.back().back().coord; } +String Buffer::debug_description() const +{ + String res = display_name() + "\n"; + + res += " Flags: "; + if (m_flags & Flags::File) + res += "File (" + name() + ") "; + if (m_flags & Flags::New) + res += "New "; + if (m_flags & Flags::Fifo) + res += "Fifo "; + if (m_flags & Flags::NoUndo) + res += "NoUndo "; + res += "\n"; + + size_t content_size = 0; + for (auto& line : m_lines) + content_size += (int)line.length(); + + size_t additional_size = 0; + for (auto& undo_group : m_history) + additional_size += undo_group.size() * sizeof(Modification); + additional_size += m_changes.size() * sizeof(Change); + + res += " Used mem: content=" + to_string(content_size) + + " additional=" + to_string(additional_size) + "\n"; + return res; +} + } |
