From ca5c16a40a8e4d9aed046a89161f31e6347d0830 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Thu, 19 May 2011 10:37:53 +0200 Subject: [PATCH] debugger: fix std::deque dumper Task-number: QTCREATORBUG-4936 --- share/qtcreator/gdbmacros/gdbmacros.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 90706e119e1..45e3b2c3eef 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -1732,18 +1732,23 @@ def qdump__QxXmlAttributes(d, item): ####################################################################### def qdump__std__deque(d, item): + innerType = templateArgument(item.value.type, 0) + innerSize = innerType.sizeof + bufsize = 1 + if innerSize < 512: + bufsize = 512 / innerSize + impl = item.value["_M_impl"] start = impl["_M_start"] - size = impl["_M_finish"]["_M_cur"] - start["_M_cur"] + finish = impl["_M_finish"] + size = (bufsize * (finish["_M_node"] - start["_M_node"] - 1) + + (finish["_M_cur"] - finish["_M_first"]) + + (start["_M_last"] - start["_M_cur"])) + check(0 <= size and size <= 1000 * 1000 * 1000) d.putItemCount(size) d.putNumChild(size) if d.isExpanded(item): - innerType = templateArgument(item.value.type, 0) - innerSize = innerType.sizeof - bufsize = 1 - if innerSize < 512: - bufsize = 512 / innerSize with Children(d, [size, 2000], innerType): pcur = start["_M_cur"] pfirst = start["_M_first"] -- GitLab