├── libcxx
├── __init__.py
└── v1
│ └── __init__.py
├── libstdcxx
├── __init__.py
├── __init__py
├── __pycache__
│ └── __init__.cpython-37.pyc
└── v6
│ ├── __pycache__
│ ├── __init__.cpython-37.pyc
│ └── printers.cpython-37.pyc
│ └── __init__.py
├── boost
└── share
│ └── boost-gdb-printers
│ └── boost
│ ├── __init__.py
│ ├── v1_44
│ ├── lib
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-37.pyc
│ │ │ └── unordered.cpython-37.pyc
│ │ └── unordered.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── optional.cpython-37.pyc
│ │ ├── smart_ptr.cpython-37.pyc
│ │ ├── unordered.cpython-37.pyc
│ │ └── ptr_container.cpython-37.pyc
│ ├── __init__.py
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ └── ptr_container.py
│ ├── v1_48
│ ├── lib
│ │ ├── __init__.py
│ │ └── unordered.py
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── __init__.py
│ ├── unordered.py
│ └── ptr_container.py
│ ├── v1_52
│ ├── lib
│ │ ├── __init__.py
│ │ └── unordered.py
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── __init__.py
│ ├── unordered.py
│ └── ptr_container.py
│ ├── v1_56
│ ├── lib
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-37.pyc
│ │ │ └── unordered.cpython-37.pyc
│ │ └── unordered.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── optional.cpython-37.pyc
│ │ ├── smart_ptr.cpython-37.pyc
│ │ ├── unordered.cpython-37.pyc
│ │ └── ptr_container.cpython-37.pyc
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── __init__.py
│ ├── unordered.py
│ └── ptr_container.py
│ ├── util
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── printing.cpython-37.pyc
│ │ └── compatibility.cpython-37.pyc
│ ├── compatibility.py
│ └── printing.py
│ ├── __pycache__
│ └── __init__.cpython-37.pyc
│ ├── v1_57
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── optional.cpython-37.pyc
│ │ ├── smart_ptr.cpython-37.pyc
│ │ ├── unordered.cpython-37.pyc
│ │ └── ptr_container.cpython-37.pyc
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_45
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_46
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_47
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_49
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_50
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_51
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_53
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_54
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_55
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_58
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_59
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_60
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_61
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ ├── v1_62
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
│ └── v1_63
│ ├── optional.py
│ ├── smart_ptr.py
│ ├── unordered.py
│ ├── ptr_container.py
│ └── __init__.py
├── clickhouse
├── ColumnArray.py
├── IColumn.py
├── IDataType.py
├── IAST.py
├── PODArray.py
├── ASTSelectQuery.py
├── ASTSelectWithUnionQuery.py
└── printers.py
├── gdbinit
└── README.md
/libcxx/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libcxx/v1/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libstdcxx/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libstdcxx/__init__py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libstdcxx/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/libstdcxx/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/libstdcxx/v6/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/libstdcxx/v6/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/libstdcxx/v6/__pycache__/printers.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/libstdcxx/v6/__pycache__/printers.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 |
3 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
4 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/util/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/__pycache__/printing.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/util/__pycache__/printing.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/optional.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/optional.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/optional.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/optional.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/optional.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/optional.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/smart_ptr.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/smart_ptr.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/unordered.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/unordered.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/smart_ptr.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/smart_ptr.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/unordered.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/unordered.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/smart_ptr.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/smart_ptr.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/unordered.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/unordered.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/__pycache__/compatibility.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/util/__pycache__/compatibility.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/ptr_container.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/__pycache__/ptr_container.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/lib/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/lib/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/lib/__pycache__/unordered.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_44/lib/__pycache__/unordered.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/ptr_container.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/__pycache__/ptr_container.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/lib/__pycache__/__init__.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/lib/__pycache__/__init__.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/lib/__pycache__/unordered.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_56/lib/__pycache__/unordered.cpython-37.pyc
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/ptr_container.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hexiaoting/ClickHouse-pretty-printer/HEAD/boost/share/boost-gdb-printers/boost/v1_57/__pycache__/ptr_container.cpython-37.pyc
--------------------------------------------------------------------------------
/clickhouse/ColumnArray.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class ColumnArrayPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "(*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+")).size()"
10 | size=gdb.parse_and_eval(eval_string);
11 | return "ColumnArray size={}".format(size)
12 |
13 | def display_hint(self) -> str:
14 | return "array"
15 |
--------------------------------------------------------------------------------
/libstdcxx/v6/__init__.py:
--------------------------------------------------------------------------------
1 | import gdb
2 |
3 | # Load the xmethods if GDB supports them.
4 | def gdb_has_xmethods():
5 | try:
6 | import gdb.xmethod
7 | return True
8 | except ImportError:
9 | return False
10 |
11 | def register_libstdcxx_printers(obj):
12 | # Load the pretty-printers.
13 | from .printers import register_libstdcxx_printers
14 | register_libstdcxx_printers(obj)
15 |
16 | if gdb_has_xmethods():
17 | from .xmethods import register_libstdcxx_xmethods
18 | register_libstdcxx_xmethods(obj)
19 |
--------------------------------------------------------------------------------
/clickhouse/IColumn.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class IColumnPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "(*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+")).getName()"
10 | #print(eval_string)
11 | type_name=gdb.parse_and_eval(eval_string)
12 | #print(type_name)
13 | eval_size_string= "(*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+")).size()"
14 | size=gdb.parse_and_eval(eval_size_string)
15 |
16 | return "type={}, size={}.".format(type_name,size)
17 |
18 | def display_hint(self) -> str:
19 | return "IColumn"
20 |
--------------------------------------------------------------------------------
/clickhouse/IDataType.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class IDataTypePrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "(*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+")).getName()"
10 | # print(eval_string)
11 | type_name=gdb.parse_and_eval(eval_string)
12 | #eval_string = "info vtbl (*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+"))"
13 | #type_name=gdb.execute(eval_string, to_string=True).split('\n')[1].split("::")[1]
14 |
15 | return "IDataType = {}".format(type_name)
16 |
17 | def display_hint(self) -> str:
18 | return "IDataType"
19 |
--------------------------------------------------------------------------------
/clickhouse/IAST.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class IASTPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "info vtbl (*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+"))"
10 | #example: "info vtbl (*(DB::IAST *)(0x7fff472e9b18))"
11 | type_name=gdb.execute(eval_string, to_string=True).split('\n')[1].split("::")[1]
12 |
13 | #eval_string = "DB::queryToString(*("+str(self.val.type).strip('&')+"*)("+str(self.val.address)+"))"
14 | eval_string = "DB::serializeAST(*(DB::"+type_name+" *)("+str(self.val.address)+"), true)"
15 | sql_string=gdb.parse_and_eval(eval_string);
16 |
17 | return "type={}, sql={} ".format(type_name, sql_string)
18 |
19 | def display_hint(self) -> str:
20 | return "IAST"
21 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_45/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_45/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_45/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_46/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_46/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_46/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_47/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_47/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_47/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_49/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_49/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_49/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_50/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_50/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_50/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_51/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_51/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_51/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_53/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_53/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_53/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_54/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_54/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_54/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_55/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_55/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_55/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_58/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_58/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_58/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_59/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_59/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_59/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_60/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_60/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_60/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_61/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_61/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_61/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_62/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_62/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_62/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_63/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.optional import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_63/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.smart_ptr import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_63/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.unordered import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_45/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_46/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_47/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_44.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_49/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_50/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_51/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_48.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_53/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_54/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_55/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_52.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_58/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_59/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_60/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_61/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_62/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_63/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from boost.v1_56.ptr_container import register_pretty_printers
20 |
21 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
22 |
--------------------------------------------------------------------------------
/gdbinit:
--------------------------------------------------------------------------------
1 | handle SIGUSR1 noprint nostop
2 |
3 | python
4 | import sys
5 | # ClickHouse-pretty-printer-dir is the directory of this repo
6 | # libcxx
7 | #sys.path.insert(0, '{ClickHouse-pretty-printer-dir}')
8 | sys.path.insert(0, '/home/hewenting/workspace/gdb/ClickHouse-pretty-printer/libcxx/v2')
9 | from libcxx_printers_new import register_libcxx_printer_loader
10 | register_libcxx_printer_loader()
11 |
12 |
13 | # clickhouse pretty printer
14 | #sys.path.insert(0, '{ClickHouse-pretty-printer-dir}/clickhouse')
15 | sys.path.insert(0, '/home/hewenting/workspace/gdb/ClickHouse-pretty-printer/clickhouse')
16 | from printers import register_ch_printers
17 | register_ch_printers()
18 |
19 | # boost
20 | #sys.path.insert(0, '{ClickHouse-pretty-printer-dir}/boost/share/boost-gdb-printers')
21 | sys.path.insert(0, '/home/hewenting/workspace/gdb/ClickHouse-pretty-printer/boost/share/boost-gdb-printers')
22 | import boost.v1_57 as boost
23 | boost.register_pretty_printers(gdb)
24 | end
25 |
26 | ## libstdcpp
27 | #from libstdcxx.v6.printers import register_libstdcxx_printers
28 | #register_libstdcxx_printers (None)
29 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/compatibility.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Compatibility with older versions of GDB.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 |
20 | import gdb
21 |
22 | use_gdb_printing = True
23 | try:
24 | import gdb.printing
25 | except ImportError:
26 | use_gdb_printing = False
27 |
28 | use_lazy_string = hasattr(gdb.Value, 'lazy_string')
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.44.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_44.optional
20 | import boost.v1_44.ptr_container
21 | import boost.v1_44.smart_ptr
22 | import boost.v1_44.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_44.optional.register_pretty_printers(obj)
26 | boost.v1_44.ptr_container.register_pretty_printers(obj)
27 | boost.v1_44.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_44.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_45/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.45.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_45.optional
20 | import boost.v1_45.ptr_container
21 | import boost.v1_45.smart_ptr
22 | import boost.v1_45.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_45.optional.register_pretty_printers(obj)
26 | boost.v1_45.ptr_container.register_pretty_printers(obj)
27 | boost.v1_45.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_45.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_46/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.46.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_46.optional
20 | import boost.v1_46.ptr_container
21 | import boost.v1_46.smart_ptr
22 | import boost.v1_46.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_46.optional.register_pretty_printers(obj)
26 | boost.v1_46.ptr_container.register_pretty_printers(obj)
27 | boost.v1_46.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_46.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_47/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.47.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_47.optional
20 | import boost.v1_47.ptr_container
21 | import boost.v1_47.smart_ptr
22 | import boost.v1_47.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_47.optional.register_pretty_printers(obj)
26 | boost.v1_47.ptr_container.register_pretty_printers(obj)
27 | boost.v1_47.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_47.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.48.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_48.optional
20 | import boost.v1_48.ptr_container
21 | import boost.v1_48.smart_ptr
22 | import boost.v1_48.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_48.optional.register_pretty_printers(obj)
26 | boost.v1_48.ptr_container.register_pretty_printers(obj)
27 | boost.v1_48.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_48.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_49/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.49.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_49.optional
20 | import boost.v1_49.ptr_container
21 | import boost.v1_49.smart_ptr
22 | import boost.v1_49.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_49.optional.register_pretty_printers(obj)
26 | boost.v1_49.ptr_container.register_pretty_printers(obj)
27 | boost.v1_49.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_49.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_50/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.50.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_50.optional
20 | import boost.v1_50.ptr_container
21 | import boost.v1_50.smart_ptr
22 | import boost.v1_50.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_50.optional.register_pretty_printers(obj)
26 | boost.v1_50.ptr_container.register_pretty_printers(obj)
27 | boost.v1_50.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_50.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_51/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.51.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_51.optional
20 | import boost.v1_51.ptr_container
21 | import boost.v1_51.smart_ptr
22 | import boost.v1_51.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_51.optional.register_pretty_printers(obj)
26 | boost.v1_51.ptr_container.register_pretty_printers(obj)
27 | boost.v1_51.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_51.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.52.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_52.optional
20 | import boost.v1_52.ptr_container
21 | import boost.v1_52.smart_ptr
22 | import boost.v1_52.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_52.optional.register_pretty_printers(obj)
26 | boost.v1_52.ptr_container.register_pretty_printers(obj)
27 | boost.v1_52.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_52.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_53/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.53.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_53.optional
20 | import boost.v1_53.ptr_container
21 | import boost.v1_53.smart_ptr
22 | import boost.v1_53.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_53.optional.register_pretty_printers(obj)
26 | boost.v1_53.ptr_container.register_pretty_printers(obj)
27 | boost.v1_53.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_53.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_54/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.54.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_54.optional
20 | import boost.v1_54.ptr_container
21 | import boost.v1_54.smart_ptr
22 | import boost.v1_54.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_54.optional.register_pretty_printers(obj)
26 | boost.v1_54.ptr_container.register_pretty_printers(obj)
27 | boost.v1_54.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_54.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_55/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.55.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_55.optional
20 | import boost.v1_55.ptr_container
21 | import boost.v1_55.smart_ptr
22 | import boost.v1_55.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_55.optional.register_pretty_printers(obj)
26 | boost.v1_55.ptr_container.register_pretty_printers(obj)
27 | boost.v1_55.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_55.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.55.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_56.optional
20 | import boost.v1_56.ptr_container
21 | import boost.v1_56.smart_ptr
22 | import boost.v1_56.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_56.optional.register_pretty_printers(obj)
26 | boost.v1_56.ptr_container.register_pretty_printers(obj)
27 | boost.v1_56.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_56.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_57/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.55.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_57.optional
20 | import boost.v1_57.ptr_container
21 | import boost.v1_57.smart_ptr
22 | import boost.v1_57.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_57.optional.register_pretty_printers(obj)
26 | boost.v1_57.ptr_container.register_pretty_printers(obj)
27 | boost.v1_57.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_57.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_58/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.58.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_58.optional
20 | import boost.v1_58.ptr_container
21 | import boost.v1_58.smart_ptr
22 | import boost.v1_58.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_58.optional.register_pretty_printers(obj)
26 | boost.v1_58.ptr_container.register_pretty_printers(obj)
27 | boost.v1_58.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_58.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_59/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.59.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_59.optional
20 | import boost.v1_59.ptr_container
21 | import boost.v1_59.smart_ptr
22 | import boost.v1_59.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_59.optional.register_pretty_printers(obj)
26 | boost.v1_59.ptr_container.register_pretty_printers(obj)
27 | boost.v1_59.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_59.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_60/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.60.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_60.optional
20 | import boost.v1_60.ptr_container
21 | import boost.v1_60.smart_ptr
22 | import boost.v1_60.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_60.optional.register_pretty_printers(obj)
26 | boost.v1_60.ptr_container.register_pretty_printers(obj)
27 | boost.v1_60.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_60.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_61/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.61.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_61.optional
20 | import boost.v1_61.ptr_container
21 | import boost.v1_61.smart_ptr
22 | import boost.v1_61.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_61.optional.register_pretty_printers(obj)
26 | boost.v1_61.ptr_container.register_pretty_printers(obj)
27 | boost.v1_61.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_61.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_62/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.62.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_62.optional
20 | import boost.v1_62.ptr_container
21 | import boost.v1_62.smart_ptr
22 | import boost.v1_62.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_62.optional.register_pretty_printers(obj)
26 | boost.v1_62.ptr_container.register_pretty_printers(obj)
27 | boost.v1_62.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_62.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_63/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost 1.63.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import boost.v1_63.optional
20 | import boost.v1_63.ptr_container
21 | import boost.v1_63.smart_ptr
22 | import boost.v1_63.unordered
23 |
24 | def register_pretty_printers(obj):
25 | boost.v1_63.optional.register_pretty_printers(obj)
26 | boost.v1_63.ptr_container.register_pretty_printers(obj)
27 | boost.v1_63.smart_ptr.register_pretty_printers(obj)
28 | boost.v1_63.unordered.register_pretty_printers(obj)
29 |
30 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
31 |
--------------------------------------------------------------------------------
/clickhouse/PODArray.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class PODArrayPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | class CHIterator:
9 | def __init__(self, start: gdb.Value, finish: gdb.Value) -> None:
10 | self.item: gdb.Value = start
11 | self.finish: gdb.Value = finish
12 | self.count: int = 0
13 |
14 | def __iter__(self):
15 | return self
16 |
17 | def __next__(self):
18 | count: int = self.count
19 | self.count += 1
20 |
21 | if self.item == self.finish:
22 | raise StopIteration
23 |
24 | elt = self.item.dereference()
25 | self.item += 1
26 |
27 | return ('[%d]'.format(count), elt)
28 |
29 | def get_bounds(self) -> Tuple[int, int, int]:
30 | return self.val['c_start'], self.val['c_end'], self.val['c_end_of_storage']
31 |
32 | def to_string(self) -> str:
33 | start, finish, end = self.get_bounds()
34 |
35 | return ('{} of length {}, capacity {}'.format(
36 | self.val.type,
37 | int(finish - start),
38 | int(end - start)))
39 |
40 | def children(self) -> CHIterator:
41 | return self.CHIterator(
42 | self.val['c_start'],
43 | self.val['c_end'])
44 |
45 | def display_hint(self) -> str:
46 | return "array"
47 |
--------------------------------------------------------------------------------
/clickhouse/ASTSelectQuery.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class ASTSelectQueryPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "info vtbl (*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+"))"
10 | #example: "info vtbl (*(DB::IAST *)(0x7fff472e9b18))"
11 | type_name=gdb.execute(eval_string, to_string=True).split('\n')[1].split("::")[1]
12 |
13 | #eval_string = "DB::queryToString(*("+str(self.val.type).strip('&')+"*)("+str(self.val.address)+"))"
14 | eval_string = "DB::serializeAST(*(DB::"+type_name+" *)("+str(self.val.address)+"), true)"
15 | sql_string=gdb.parse_and_eval(eval_string)
16 |
17 | distinct=self.val["distinct"]
18 | group_by_with_totals=self.val["group_by_with_totals"]
19 | group_by_with_rollup=self.val["group_by_with_rollup"]
20 | group_by_with_cube=self.val["group_by_with_cube"]
21 | limit_with_ties=self.val["limit_with_ties"]
22 | positions=self.val["positions"]
23 |
24 | #return "type={}, sql={}".format(type_name, sql_string)
25 | return "type={}, sql={}, distinct={}, group_by_with_totals={}, group_by_with_rollup={}, group_by_with_cube={}, limit_with_tie={}, positions={}".format(type_name, sql_string,distinct,group_by_with_totals,group_by_with_rollup,group_by_with_cube,limit_with_ties,positions)
26 |
27 | def display_hint(self) -> str:
28 | return "ASTSelectQuery"
29 |
--------------------------------------------------------------------------------
/clickhouse/ASTSelectWithUnionQuery.py:
--------------------------------------------------------------------------------
1 | from typing import Tuple
2 | import gdb
3 |
4 | class ASTSelectWithUnionQueryPrinter:
5 | def __init__(self, val: gdb.Value) -> None:
6 | self.val: gdb.Value = val
7 |
8 | def to_string(self) -> str:
9 | eval_string = "info vtbl (*("+str(self.val.type).strip('&')+" *)("+str(self.val.address)+"))"
10 | #example: "info vtbl (*(DB::IAST *)(0x7fff472e9b18))"
11 | type_name=gdb.execute(eval_string, to_string=True).split('\n')[1].split("::")[1]
12 |
13 | #eval_string = "DB::queryToString(*("+str(self.val.type).strip('&')+"*)("+str(self.val.address)+"))"
14 | eval_string = "DB::serializeAST(*(DB::"+type_name+" *)("+str(self.val.address)+"), true)"
15 | sql_string=gdb.parse_and_eval(eval_string)
16 |
17 | union_mode=self.val["union_mode"]
18 | is_normalized=self.val["is_normalized"]
19 | out_file=self.val["out_file"]
20 | format_ast=self.val["format"]
21 | settings_ast=self.val["settings_ast"]
22 | list_of_modes=self.val["list_of_modes"]
23 | list_of_selects=self.val["list_of_selects"]
24 |
25 | #return "type={}, sql={}".format(type_name, sql_string)
26 | return "type={}, sql={}, union_mode={}, is_normalized={}, out_file={}, format={}, settings_ast={}, list_of_modes={}, list_of_select={}".format(type_name, sql_string, union_mode, is_normalized, out_file, format_ast, settings_ast, list_of_modes, list_of_selects)
27 |
28 | def display_hint(self) -> str:
29 | return "ASTSelectWithUnionQuery"
30 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/optional.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Optional.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 |
21 | import boost.util.printing as printing
22 |
23 | class OptionalPrinter:
24 |
25 | def __init__(self, typename, value):
26 | self.typename = typename
27 | self.value = value
28 |
29 | def to_string(self):
30 | if self.value['m_initialized']:
31 | data = self.value['m_storage']['dummy_']['data']
32 | ptr_type = self.value.type.template_argument(0).pointer()
33 | return "%s %s" % (self.typename, data.cast(ptr_type).dereference())
34 | else:
35 | return "empty " + self.typename
36 |
37 | printer = None
38 |
39 | def build_pretty_printers():
40 | global printer
41 |
42 | if printer != None:
43 | return
44 |
45 | printer = printing.Printer("boost.optional")
46 |
47 | printer.add('boost::optional', OptionalPrinter)
48 |
49 | def register_pretty_printers(obj):
50 | printing.register_pretty_printer(printer, obj)
51 |
52 | build_pretty_printers()
53 |
54 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
55 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/smart_ptr.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Smart Ptr.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 |
21 | import boost.util.printing as printing
22 |
23 |
24 | class SmartPtrPrinter:
25 | """Prints smart pointers based on Boost.SmartPtr"""
26 |
27 | def __init__(self, typename, value):
28 | self.typename = typename
29 | self.value = value
30 |
31 | def to_string(self):
32 | if self.value['px']:
33 | return "%s %s" % (self.typename, self.value['px'].dereference())
34 | else:
35 | return "empty %s" % (self.typename,)
36 |
37 |
38 | printer = None
39 |
40 | def build_pretty_printers():
41 | global printer
42 |
43 | if printer != None:
44 | return
45 |
46 | printer = printing.Printer("boost.smart_ptr")
47 |
48 | printer.add('boost::shared_ptr', SmartPtrPrinter)
49 | # printer.add('boost::shared_array', SmartPtrPrinter)
50 | printer.add('boost::weak_ptr', SmartPtrPrinter)
51 | printer.add('boost::scoped_ptr', SmartPtrPrinter)
52 | # printer.add('boost::scoped_array', SmartPtrPrinter)
53 |
54 | def register_pretty_printers(obj):
55 | printing.register_pretty_printer(printer, obj)
56 |
57 | build_pretty_printers()
58 |
59 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
60 |
--------------------------------------------------------------------------------
/clickhouse/printers.py:
--------------------------------------------------------------------------------
1 | import gdb
2 | import gdb.printing
3 | from typing import List, Dict, Tuple
4 |
5 | from PODArray import PODArrayPrinter
6 | from ColumnArray import ColumnArrayPrinter
7 | from ASTSelectQuery import ASTSelectQueryPrinter
8 | from ASTSelectWithUnionQuery import ASTSelectWithUnionQueryPrinter
9 | from IAST import IASTPrinter
10 | from IColumn import IColumnPrinter
11 | from IDataType import IDataTypePrinter
12 |
13 |
14 | def print_icolumn_type(col: gdb.Value) -> str:
15 | obj_type: gdb.Type = col.dynamic_type
16 | obj_casted: gdb.Value = col.cast(obj_type)
17 |
18 | if obj_type == t_col_array:
19 | offsets: gdb.Value = gdb.dereference(obj_casted["offsets"]).cast(t_col_offsets)["data"]
20 |
21 | start, end, _= get_podarray_bounds(offsets)
22 |
23 | nested_printed: str = print_icolumn_type(gdb.dereference(obj_casted["data"]))
24 |
25 | return "ColumnArray[size: {}, {}]".format(end - start, nested_printed)
26 | elif obj_type == t_col_const:
27 | data: gdb.Value = gdb.dereference(obj_casted["data"])
28 | nested_printed: str = print_icolumn_type(data)
29 |
30 | return "ColumnConst[size: {}, {}]".format(obj_casted["s"], nested_printed)
31 | elif obj_type == t_col_lc:
32 | dictionary: gdb.Value = obj_casted["dictionary"]
33 | index: gdb.Value = obj_casted["idx"]
34 |
35 | size_of_index_type: int = int(index["size_of_type"])
36 |
37 | index_type: str = "UInt8"
38 |
39 | if size_of_index_type == t_uint16.sizeof:
40 | index_type = "UInt16"
41 | elif size_of_index_type == t_uint32.sizeof:
42 | index_type = "UInt32"
43 | else:
44 | index_type = "UInt64"
45 |
46 | nested_col: gdb.Value = gdb.dereference(
47 | gdb.dereference(dictionary["column_unique"])["column_holder"])
48 |
49 | nested_printed: str = print_icolumn_type(nested_col)
50 |
51 | return "ColumnLowCardinality[index: {}, {}]".format(index_type, nested_printed)
52 | elif obj_type == t_col_nullable:
53 | col_nested: gdb.Value = gdb.dereference(obj_casted["nested_column"])
54 | nested_printed: str = print_icolumn_type(col_nested)
55 |
56 | return "ColumnNullable[{}]".format(nested_printed)
57 | elif obj_type == t_col_vector:
58 | nested_type = obj_casted.template_argument(0)
59 | start, end, _ = get_podarray_bounds(obj_casted["data"])
60 |
61 | return "ColumnArray[size: {}, {}]".format(nested_type, end - start)
62 | else:
63 | return "NI {}".format(obj_type)
64 |
65 | def build_pretty_printers():
66 | pp = gdb.printing.RegexpCollectionPrettyPrinter("clickhouse")
67 |
68 | pp.add_printer('PODArray', '^DB::PODArray<.*>$', PODArrayPrinter)
69 | pp.add_printer('PaddedPODArray', '^DB::PaddedPODArray<.*>$', PODArrayPrinter)
70 |
71 | pp.add_printer('ColumnArray', '^DB::ColumnArray$', ColumnArrayPrinter)
72 | pp.add_printer('ASTSelectQuery', '^DB::ASTSelectQuery$', ASTSelectQueryPrinter)
73 | pp.add_printer('ASTSelectWithUnionQuery', '^DB::ASTSelectWithUnionQuery$', ASTSelectWithUnionQueryPrinter)
74 | pp.add_printer('IAST', '^DB::IAST$', IASTPrinter)
75 | pp.add_printer('IColumn', '^DB::IColumn$', IColumnPrinter)
76 | pp.add_printer('IDataType', '^DB::IDataType$', IDataTypePrinter)
77 |
78 | return pp
79 |
80 | def register_ch_printers():
81 | gdb.printing.register_pretty_printer(
82 | gdb.current_progspace(),
83 | #gdb.current_objfile(),
84 | build_pretty_printers())
85 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_44.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | class PrinterBase(object):
27 | '''Contains common functionality for printing Boost.Unordered types'''
28 |
29 | def __init__(self, typename, value, container, iterator):
30 | self.typename = typename
31 | self.impl = container(value)
32 | self.iterator = iterator
33 |
34 | def to_string(self):
35 | if self.impl.empty():
36 | return "empty " + self.typename
37 | else:
38 | return "%s with %s elements" % (self.typename, len(self.impl))
39 |
40 | def children(self):
41 | return self.iterator(iter(self.impl))
42 |
43 | class UnorderedMapPrinter(PrinterBase):
44 |
45 | def __init__(self, typename, value):
46 | super(UnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator)
47 |
48 | def display_hint(self):
49 | return 'map'
50 |
51 | class _iterator(six.Iterator):
52 |
53 | def __init__(self, impl):
54 | self.impl = impl
55 | self.value = None
56 | self.step = True
57 |
58 | def __iter__(self):
59 | return self
60 |
61 | def __next__(self):
62 | if self.step:
63 | self.value = six.next(self.impl)
64 | value = self.value[0]
65 | else:
66 | value = self.value[1]
67 | self.step = not self.step
68 | return ("", value)
69 |
70 | class UnorderedSetPrinter(PrinterBase):
71 |
72 | def __init__(self, typename, value):
73 | super(UnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator)
74 |
75 | def display_hint(self):
76 | return 'array'
77 |
78 | class _iterator(six.Iterator):
79 |
80 | def __init__(self, impl):
81 | self.impl = impl
82 |
83 | def __iter__(self):
84 | return self
85 |
86 | def __next__(self):
87 | return ("", six.next(self.impl)[1])
88 |
89 | printer = None
90 |
91 | def build_pretty_printers():
92 | global printer
93 |
94 | if printer != None:
95 | return
96 |
97 | printer = printing.Printer("boost.unordered")
98 |
99 | printer.add('boost::unordered_map', UnorderedMapPrinter)
100 | printer.add('boost::unordered_multimap', UnorderedMapPrinter)
101 | printer.add('boost::unordered_multiset', UnorderedSetPrinter)
102 | printer.add('boost::unordered_set', UnorderedSetPrinter)
103 |
104 | def register_pretty_printers(obj):
105 | printing.register_pretty_printer(printer, obj)
106 |
107 | build_pretty_printers()
108 |
109 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
110 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_48.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | class PrinterBase(object):
27 | '''Contains common functionality for printing Boost.Unordered types'''
28 |
29 | def __init__(self, typename, value, container, iterator):
30 | self.typename = typename
31 | self.impl = container(value)
32 | self.iterator = iterator
33 |
34 | def to_string(self):
35 | if self.impl.empty():
36 | return "empty " + self.typename
37 | else:
38 | return "%s with %s elements" % (self.typename, len(self.impl))
39 |
40 | def children(self):
41 | return self.iterator(iter(self.impl))
42 |
43 | class UnorderedMapPrinter(PrinterBase):
44 |
45 | def __init__(self, typename, value):
46 | super(UnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator)
47 |
48 | def display_hint(self):
49 | return 'map'
50 |
51 | class _iterator(six.Iterator):
52 |
53 | def __init__(self, impl):
54 | self.impl = impl
55 | self.value = None
56 | self.step = True
57 |
58 | def __iter__(self):
59 | return self
60 |
61 | def __next__(self):
62 | if self.step:
63 | self.value = six.next(self.impl)
64 | value = self.value[0]
65 | else:
66 | value = self.value[1]
67 | self.step = not self.step
68 | return ("", value)
69 |
70 | class UnorderedSetPrinter(PrinterBase):
71 |
72 | def __init__(self, typename, value):
73 | super(UnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator)
74 |
75 | def display_hint(self):
76 | return 'array'
77 |
78 | class _iterator(six.Iterator):
79 |
80 | def __init__(self, impl):
81 | self.impl = impl
82 |
83 | def __iter__(self):
84 | return self
85 |
86 | def __next__(self):
87 | return ("", six.next(self.impl)[1])
88 |
89 | printer = None
90 |
91 | def build_pretty_printers():
92 | global printer
93 |
94 | if printer != None:
95 | return
96 |
97 | printer = printing.Printer("boost.unordered")
98 |
99 | printer.add('boost::unordered::unordered_map', UnorderedMapPrinter)
100 | printer.add('boost::unordered::unordered_multimap', UnorderedMapPrinter)
101 | printer.add('boost::unordered::unordered_multiset', UnorderedSetPrinter)
102 | printer.add('boost::unordered::unordered_set', UnorderedSetPrinter)
103 |
104 | def register_pretty_printers(obj):
105 | printing.register_pretty_printer(printer, obj)
106 |
107 | build_pretty_printers()
108 |
109 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
110 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_52.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | class PrinterBase(object):
27 | '''Contains common functionality for printing Boost.Unordered types'''
28 |
29 | def __init__(self, typename, value, container, iterator):
30 | self.typename = typename
31 | self.impl = container(value)
32 | self.iterator = iterator
33 |
34 | def to_string(self):
35 | if self.impl.empty():
36 | return "empty " + self.typename
37 | else:
38 | return "%s with %s elements" % (self.typename, len(self.impl))
39 |
40 | def children(self):
41 | return self.iterator(iter(self.impl))
42 |
43 | class UnorderedMapPrinter(PrinterBase):
44 |
45 | def __init__(self, typename, value):
46 | super(UnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator)
47 |
48 | def display_hint(self):
49 | return 'map'
50 |
51 | class _iterator(six.Iterator):
52 |
53 | def __init__(self, impl):
54 | self.impl = impl
55 | self.value = None
56 | self.step = True
57 |
58 | def __iter__(self):
59 | return self
60 |
61 | def __next__(self):
62 | if self.step:
63 | self.value = six.next(self.impl)
64 | value = self.value[0]
65 | else:
66 | value = self.value[1]
67 | self.step = not self.step
68 | return ("", value)
69 |
70 | class UnorderedSetPrinter(PrinterBase):
71 |
72 | def __init__(self, typename, value):
73 | super(UnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator)
74 |
75 | def display_hint(self):
76 | return 'array'
77 |
78 | class _iterator(six.Iterator):
79 |
80 | def __init__(self, impl):
81 | self.impl = impl
82 |
83 | def __iter__(self):
84 | return self
85 |
86 | def __next__(self):
87 | return ("", six.next(self.impl)[1])
88 |
89 | printer = None
90 |
91 | def build_pretty_printers():
92 | global printer
93 |
94 | if printer != None:
95 | return
96 |
97 | printer = printing.Printer("boost.unordered")
98 |
99 | printer.add('boost::unordered::unordered_map', UnorderedMapPrinter)
100 | printer.add('boost::unordered::unordered_multimap', UnorderedMapPrinter)
101 | printer.add('boost::unordered::unordered_multiset', UnorderedSetPrinter)
102 | printer.add('boost::unordered::unordered_set', UnorderedSetPrinter)
103 |
104 | def register_pretty_printers(obj):
105 | printing.register_pretty_printer(printer, obj)
106 |
107 | build_pretty_printers()
108 |
109 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
110 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_56.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | class PrinterBase(object):
27 | '''Contains common functionality for printing Boost.Unordered types'''
28 |
29 | def __init__(self, typename, value, container, iterator):
30 | self.typename = typename
31 | self.impl = container(value)
32 | self.iterator = iterator
33 |
34 | def to_string(self):
35 | if self.impl.empty():
36 | return "empty " + self.typename
37 | else:
38 | return "%s with %s elements" % (self.typename, len(self.impl))
39 |
40 | def children(self):
41 | return self.iterator(iter(self.impl))
42 |
43 | class UnorderedMapPrinter(PrinterBase):
44 |
45 | def __init__(self, typename, value):
46 | super(UnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator)
47 |
48 | def display_hint(self):
49 | return 'map'
50 |
51 | class _iterator(six.Iterator):
52 |
53 | def __init__(self, impl):
54 | self.impl = impl
55 | self.value = None
56 | self.step = True
57 |
58 | def __iter__(self):
59 | return self
60 |
61 | def __next__(self):
62 | if self.step:
63 | self.value = six.next(self.impl)
64 | value = self.value[0]
65 | else:
66 | value = self.value[1]
67 | self.step = not self.step
68 | return ("", value)
69 |
70 | class UnorderedSetPrinter(PrinterBase):
71 |
72 | def __init__(self, typename, value):
73 | super(UnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator)
74 |
75 | def display_hint(self):
76 | return 'array'
77 |
78 | class _iterator(six.Iterator):
79 |
80 | def __init__(self, impl):
81 | self.impl = impl
82 |
83 | def __iter__(self):
84 | return self
85 |
86 | def __next__(self):
87 | return ("", six.next(self.impl)[1])
88 |
89 | printer = None
90 |
91 | def build_pretty_printers():
92 | global printer
93 |
94 | if printer != None:
95 | return
96 |
97 | printer = printing.Printer("boost.unordered")
98 |
99 | printer.add('boost::unordered::unordered_map', UnorderedMapPrinter)
100 | printer.add('boost::unordered::unordered_multimap', UnorderedMapPrinter)
101 | printer.add('boost::unordered::unordered_multiset', UnorderedSetPrinter)
102 | printer.add('boost::unordered::unordered_set', UnorderedSetPrinter)
103 |
104 | def register_pretty_printers(obj):
105 | printing.register_pretty_printer(printer, obj)
106 |
107 | build_pretty_printers()
108 |
109 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
110 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/util/printing.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Printer interface adaptor.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | from collections import Mapping
20 | import gdb
21 | import re
22 | import six
23 |
24 | from boost.util.compatibility import use_gdb_printing
25 |
26 | class SimplePrinter(object):
27 |
28 | def __init__(self, name, function):
29 | self.name = name
30 | self.function = function
31 | self.enabled = True
32 |
33 | def invoke(self, val):
34 | if not self.enabled:
35 | return None
36 | return self.function(self.name, val)
37 |
38 | class NameLookup(Mapping):
39 |
40 | def __init__(self):
41 | self.map = {}
42 | self.name_regex = re.compile('^([\w:]+)(<.*>)?')
43 |
44 | def add(self, name, printer):
45 | self.map[name] = printer
46 |
47 | def __len__(self):
48 | return len(self.map)
49 |
50 | def __getitem__(self, type):
51 | typename = self._basic_type(type)
52 | if typename and typename in self.map:
53 | return self.map[typename]
54 | return None
55 |
56 | def __iter__(self):
57 | return self.map
58 |
59 | def _basic_type(self, type):
60 | basic_type = self.basic_type(type)
61 | if basic_type:
62 | match = self.name_regex.match(basic_type)
63 | if match:
64 | return match.group(1)
65 | return None
66 |
67 | @staticmethod
68 | def basic_type(type):
69 | if type.code == gdb.TYPE_CODE_REF:
70 | type = type.target()
71 | type = type.unqualified().strip_typedefs()
72 | return type.tag
73 |
74 | class FunctionLookup(Mapping):
75 |
76 | def __init__(self):
77 | self.map = {}
78 |
79 | def add(self, test, printer):
80 | self.map[test] = printer
81 |
82 | def __len__(self):
83 | return len(self.map)
84 |
85 | def __getitem__(self, type):
86 | for (test, printer) in six.iteritems(self.map):
87 | if test(type):
88 | return printer
89 | return None
90 |
91 | def __iter__(self):
92 | return self.map
93 |
94 | class Printer(object):
95 |
96 | def __init__(self, name):
97 | self.name = name
98 | self.subprinters = []
99 | self.name_lookup = NameLookup()
100 | self.func_lookup = FunctionLookup()
101 | self.enabled = True
102 |
103 | def add(self, name, function, lookup = None):
104 | printer = SimplePrinter(name, function)
105 | self.subprinters.append(printer)
106 | if not lookup:
107 | self.name_lookup.add(name, printer)
108 | else:
109 | self.func_lookup.add(lookup, printer)
110 |
111 |
112 | def __call__(self, val):
113 | printer = self.name_lookup[val.type]
114 | if not printer:
115 | printer = self.func_lookup[val.type]
116 |
117 | if printer:
118 | return printer.invoke(val)
119 | return None
120 |
121 | def register_pretty_printer(printer, obj):
122 | '''Registers printer with objfile'''
123 |
124 | if use_gdb_printing:
125 | gdb.printing.register_pretty_printer(obj, printer)
126 | else:
127 | if obj is None:
128 | obj = gdb
129 | obj.pretty_printers.append(printer)
130 |
131 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
132 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/lib/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Helper classes for working with Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | class Unordered(object):
23 | '''Common representation of Boost.Unordered types'''
24 |
25 | def __init__(self, value, extractor):
26 | self.value = value
27 | self.extractor = extractor
28 | self.node_type = None
29 | self.value_type = None
30 | self.extra_node = False
31 | self._init()
32 |
33 | def __len__(self):
34 | table = self.value['table_']
35 | if table['buckets_']:
36 | return int(table['size_'])
37 | else:
38 | return 0
39 |
40 | def __iter__(self):
41 | table = self.value['table_']
42 | buckets = table['buckets_']
43 | if buckets:
44 | start_bucket = buckets + table['bucket_count_']
45 | start_node = start_bucket.dereference()['next_']
46 | if self.extra_node:
47 | start_node = start_node.dereference()['next_']
48 | return self._iterator(start_node, self.node_type, self.value_type, self.extractor)
49 | else:
50 | return iter([])
51 |
52 | def empty(self):
53 | return not self.value['table_']['buckets_']
54 |
55 | def _init(self):
56 | table = self.value['table_'].type.fields()[0]
57 | assert table.is_base_class
58 | buckets = table.type.fields()[0]
59 | assert buckets.is_base_class
60 |
61 | alloc_type = buckets.type.template_argument(0)
62 | self.value_type = alloc_type.template_argument(0)
63 |
64 | bucket_type = buckets.type.template_argument(1).strip_typedefs()
65 | self.extra_node = (str(bucket_type) == 'boost::unordered::detail::bucket')
66 |
67 | self.node_type = buckets.type.template_argument(2)
68 |
69 | class _iterator(six.Iterator):
70 | '''Iterator for Boost.Unordered types'''
71 |
72 | def __init__(self, start_node, node_type, value_type, extractor):
73 | assert start_node
74 | self.node = None
75 | self.next_node = start_node
76 | self.node_type = node_type
77 | self.value_type = value_type
78 | self.extractor = extractor
79 |
80 | def __iter__(self):
81 | return self
82 |
83 | def __next__(self):
84 | # sorry, no next node available
85 | if not self.next_node or self.next_node == self.node:
86 | raise StopIteration()
87 |
88 | # fetch next node
89 | self.node = self.next_node
90 | self.next_node = self.node.dereference()['next_']
91 |
92 | mapped = self._value()
93 | return (self.extractor.key(mapped), self.extractor.value(mapped))
94 |
95 | def _value(self):
96 | assert self.node
97 | node = self.node.dereference().cast(self.node_type)
98 | return node['data_'].cast(self.value_type)
99 |
100 | class Map(Unordered):
101 |
102 | def __init__(self, value):
103 | super(Map, self).__init__(value, self._extractor())
104 |
105 | class _extractor(object):
106 |
107 | def key(self, node):
108 | return node['first']
109 |
110 | def value(self, node):
111 | return node['second']
112 |
113 | class Set(Unordered):
114 |
115 | def __init__(self, value):
116 | super(Set, self).__init__(value, self._extractor())
117 |
118 | class _extractor(object):
119 |
120 | def key(self, node):
121 | return None
122 |
123 | def value(self, node):
124 | return node
125 |
126 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
127 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/lib/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Helper classes for working with Boost.Unordered.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | class Unordered(object):
23 | '''Common representation of Boost.Unordered types'''
24 |
25 | def __init__(self, value, extractor):
26 | self.value = value
27 | self.extractor = extractor
28 | self.node_type = self._node_type()
29 |
30 | def __len__(self):
31 | table = self.value['table_']
32 | if table['buckets_']:
33 | return int(table['size_'])
34 | else:
35 | return 0
36 |
37 | def __iter__(self):
38 | table = self.value['table_']
39 | buckets = table['buckets_']
40 | if buckets:
41 | first = table['cached_begin_bucket_']
42 | last = buckets + table['bucket_count_']
43 | else:
44 | first = last = None
45 | return self._iterator(first, last, self.node_type, self.extractor)
46 |
47 | def empty(self):
48 | return not self.value['table_']['buckets_']
49 |
50 | def _node_type(self):
51 | hash_table = self.value['table_'].type.fields()[0]
52 | assert hash_table.is_base_class
53 | hash_buckets = hash_table.type.fields()[0]
54 | assert hash_buckets.is_base_class
55 | node_type = gdb.lookup_type("%s::node" % hash_buckets.type)
56 | assert node_type != None
57 | return node_type
58 |
59 | class _iterator(six.Iterator):
60 | '''Iterator for Boost.Unordered types'''
61 |
62 | def __init__(self, first_bucket, last_bucket, node_type, extractor):
63 | self.bucket = first_bucket
64 | self.last_bucket = last_bucket
65 | self.node = self.bucket
66 | self.node_type = node_type
67 | self.value_type = self._value_type()
68 | self.extractor = extractor
69 |
70 | def __iter__(self):
71 | return self
72 |
73 | def __next__(self):
74 | if self.node:
75 | self.node = self.node.dereference()['next_']
76 |
77 | # we finished the current bucket: go on to the next non-empty one
78 | if not self.node:
79 | while not self.node and self.bucket != self.last_bucket:
80 | self.bucket += 1
81 | self.node = self.bucket.dereference()['next_']
82 |
83 | # sorry, no node available
84 | if not self.node or self.node == self.bucket:
85 | raise StopIteration()
86 |
87 | mapped = self._value()
88 | return (self.extractor.key(mapped), self.extractor.value(mapped))
89 |
90 | def _value(self):
91 | assert self.node != self.bucket # bucket node has no value
92 | assert self.node != None
93 | node = self.node.dereference().cast(self.node_type)
94 | return node['data_'].cast(self.value_type)
95 |
96 | def _value_type(self):
97 | value_base = self.node_type.fields()[1]
98 | assert value_base.is_base_class
99 | return value_base.type.template_argument(0)
100 |
101 | class Map(Unordered):
102 |
103 | def __init__(self, value):
104 | super(Map, self).__init__(value, self._extractor())
105 |
106 | class _extractor(object):
107 |
108 | def key(self, node):
109 | return node['first']
110 |
111 | def value(self, node):
112 | return node['second']
113 |
114 | class Set(Unordered):
115 |
116 | def __init__(self, value):
117 | super(Set, self).__init__(value, self._extractor())
118 |
119 | class _extractor(object):
120 |
121 | def key(self, node):
122 | return None
123 |
124 | def value(self, node):
125 | return node
126 |
127 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
128 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/lib/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Helper classes for working with Boost.Unordered 1.56.
3 | #
4 | #
5 | # This program is free software; you can redistribute it and/or modify
6 | # it under the terms of the GNU General Public License as published by
7 | # the Free Software Foundation; either version 3 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program. If not, see .
17 |
18 | import gdb
19 | import six
20 |
21 | class Unordered(object):
22 | '''Common representation of Boost.Unordered types in Boost 1.56.'''
23 |
24 | def __init__(self, value, extractor):
25 | self.value = value
26 | self.extractor = extractor
27 | self.node_type = None
28 | self.value_type = None
29 | self.extra_node = False
30 | self._init_types()
31 |
32 | def __len__(self):
33 | table = self.value['table_']
34 | if table['buckets_']:
35 | return int(table['size_'])
36 | else:
37 | return 0
38 |
39 | def __iter__(self):
40 | table = self.value['table_']
41 | buckets = table['buckets_']
42 | if buckets:
43 | start_bucket = buckets + table['bucket_count_']
44 | start_node = start_bucket.dereference()['next_']
45 | if self.extra_node:
46 | start_node = start_node.dereference()['next_']
47 | return self._iterator(start_node, self.node_type, self.value_type, self.extractor)
48 | else:
49 | return iter([])
50 |
51 | def empty(self):
52 | return not self.value['table_']['buckets_']
53 |
54 | def _init_types(self):
55 | key_type = self.value.type.template_argument(0)
56 | value_type = self.value.type.template_argument(1)
57 | self.value_type = self.extractor.make_type(key_type, value_type)
58 |
59 | table = self.value['table_'].type.fields()[0]
60 | assert table.is_base_class
61 | allocators = table.type['allocators_']
62 | assert allocators
63 |
64 | self.node_type = allocators.type.template_argument(1).template_argument(0)
65 | bucket_type = allocators.type.template_argument(0).template_argument(0).strip_typedefs()
66 |
67 | self.extra_node = (str(bucket_type) == 'boost::unordered::detail::bucket')
68 |
69 | class _iterator(six.Iterator):
70 | '''Iterator for Boost.Unordered types'''
71 |
72 | def __init__(self, start_node, node_type, value_type, extractor):
73 | assert start_node
74 | self.node = None
75 | self.next_node = start_node
76 | self.node_type = node_type
77 | self.value_type = value_type
78 | self.extractor = extractor
79 |
80 | def __iter__(self):
81 | return self
82 |
83 | def __next__(self):
84 | # sorry, no next node available
85 | if not self.next_node or self.next_node == self.node:
86 | raise StopIteration()
87 |
88 | # fetch next node
89 | self.node = self.next_node
90 | self.next_node = self.node.dereference()['next_']
91 |
92 | mapped = self._value()
93 | return (self.extractor.key(mapped), self.extractor.value(mapped))
94 |
95 | def _value(self):
96 | assert self.node
97 | node = self.node.dereference().cast(self.node_type)
98 | return node['value_base_']['data_'].cast(self.value_type)
99 |
100 | class Map(Unordered):
101 |
102 | def __init__(self, value):
103 | super(Map, self).__init__(value, self._extractor())
104 |
105 | class _extractor(object):
106 |
107 | def key(self, node):
108 | return node['first']
109 |
110 | def value(self, node):
111 | return node['second']
112 |
113 | def make_type(self, key, value):
114 | return gdb.lookup_type('std::pair<%s const, %s>' % (key, value))
115 |
116 | class Set(Unordered):
117 |
118 | def __init__(self, value):
119 | super(Set, self).__init__(value, self._extractor())
120 |
121 | class _extractor(object):
122 |
123 | def key(self, node):
124 | return None
125 |
126 | def value(self, node):
127 | return node
128 |
129 | def make_type(self, key, value):
130 | return key
131 |
132 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
133 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/lib/unordered.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # Helper classes for working with Boost.Unordered 1.52.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | class Unordered(object):
23 | '''Common representation of Boost.Unordered types in Boost 1.52.'''
24 |
25 | def __init__(self, value, extractor):
26 | self.value = value
27 | self.extractor = extractor
28 | self.node_type = None
29 | self.value_type = None
30 | self.extra_node = False
31 | self._init_types()
32 |
33 | def __len__(self):
34 | table = self.value['table_']
35 | if table['buckets_']:
36 | return int(table['size_'])
37 | else:
38 | return 0
39 |
40 | def __iter__(self):
41 | table = self.value['table_']
42 | buckets = table['buckets_']
43 | if buckets:
44 | start_bucket = buckets + table['bucket_count_']
45 | start_node = start_bucket.dereference()['next_']
46 | if self.extra_node:
47 | start_node = start_node.dereference()['next_']
48 | return self._iterator(start_node, self.node_type, self.value_type, self.extractor)
49 | else:
50 | return iter([])
51 |
52 | def empty(self):
53 | return not self.value['table_']['buckets_']
54 |
55 | def _init_types(self):
56 | key_type = self.value.type.template_argument(0)
57 | value_type = self.value.type.template_argument(1)
58 | self.value_type = self.extractor.make_type(key_type, value_type)
59 |
60 | table = self.value['table_'].type.fields()[0]
61 | assert table.is_base_class
62 | allocators = table.type['allocators_']
63 | assert allocators
64 |
65 | self.node_type = allocators.type.template_argument(1).template_argument(0)
66 | bucket_type = allocators.type.template_argument(0).template_argument(0).strip_typedefs()
67 |
68 | self.extra_node = (str(bucket_type) == 'boost::unordered::detail::bucket')
69 |
70 | class _iterator(six.Iterator):
71 | '''Iterator for Boost.Unordered types'''
72 |
73 | def __init__(self, start_node, node_type, value_type, extractor):
74 | assert start_node
75 | self.node = None
76 | self.next_node = start_node
77 | self.node_type = node_type
78 | self.value_type = value_type
79 | self.extractor = extractor
80 |
81 | def __iter__(self):
82 | return self
83 |
84 | def __next__(self):
85 | # sorry, no next node available
86 | if not self.next_node or self.next_node == self.node:
87 | raise StopIteration()
88 |
89 | # fetch next node
90 | self.node = self.next_node
91 | self.next_node = self.node.dereference()['next_']
92 |
93 | mapped = self._value()
94 | return (self.extractor.key(mapped), self.extractor.value(mapped))
95 |
96 | def _value(self):
97 | assert self.node
98 | node = self.node.dereference().cast(self.node_type)
99 | return node['data_'].cast(self.value_type)
100 |
101 | class Map(Unordered):
102 |
103 | def __init__(self, value):
104 | super(Map, self).__init__(value, self._extractor())
105 |
106 | class _extractor(object):
107 |
108 | def key(self, node):
109 | return node['first']
110 |
111 | def value(self, node):
112 | return node['second']
113 |
114 | def make_type(self, key, value):
115 | return gdb.lookup_type('std::pair<%s, %s>' % (key.const(), value))
116 |
117 | class Set(Unordered):
118 |
119 | def __init__(self, value):
120 | super(Set, self).__init__(value, self._extractor())
121 |
122 | class _extractor(object):
123 |
124 | def key(self, node):
125 | return None
126 |
127 | def value(self, node):
128 | return node
129 |
130 | def make_type(self, key, value):
131 | return key
132 |
133 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
134 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_44/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_44.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | std = None
27 |
28 | class PtrStdPrinterBase(object):
29 |
30 | def __init__(self, typename, value, seq_tag):
31 | self._import_std()
32 | self.typename = typename
33 | self.value = value
34 |
35 | # (try to) init printer of underlying std sequence and get elements
36 | printer = self._get_sequence_printer(seq_tag)
37 | if printer:
38 | seq = value['c_']
39 | if str(seq.type.strip_typedefs()).startswith('std::__debug::'):
40 | seq_typename = 'std::__debug::%s' % seq_tag
41 | else:
42 | seq_typename = 'std::%s' % seq_tag
43 | self.sequence = list(printer(seq_typename, seq).children())
44 | else:
45 | self.sequence = None
46 |
47 | def to_string(self):
48 | if self.sequence != None:
49 | length = len(self.sequence)
50 | if length:
51 | return "%s %s" % (self.typename, self.print_size(length))
52 | else:
53 | return "empty %s" % self.typename
54 | else:
55 | return "opaque %s" % self.typename
56 |
57 | def children(self):
58 | return self._iterator(self.sequence, self.value.type.template_argument(0))
59 |
60 | class _iterator(six.Iterator):
61 |
62 | def __init__(self, sequence, type):
63 | self.impl = iter(sequence)
64 | self.type = type.pointer()
65 |
66 | def __iter__(self):
67 | return self
68 |
69 | def __next__(self):
70 | (index, value) = six.next(self.impl)
71 | return (index, value.cast(self.type).dereference())
72 |
73 | def _import_std(self):
74 | global std
75 | if not std:
76 | try:
77 | import libstdcxx.v6.printers
78 | std = libstdcxx.v6.printers
79 | except:
80 | pass
81 |
82 | def _get_sequence_printer(self, typename):
83 | if typename == "deque":
84 | return std.StdDequePrinter
85 | if typename == "list":
86 | return std.StdListPrinter
87 | if typename == "map":
88 | return std.StdMapPrinter
89 | if typename == "set":
90 | return std.StdSetPrinter
91 | if typename == "vector":
92 | return std.StdVectorPrinter
93 |
94 | class PtrSequencePrinter(PtrStdPrinterBase):
95 |
96 | def __init__(self, typename, value, seq_tag):
97 | super(PtrSequencePrinter, self).__init__(typename, value, seq_tag)
98 |
99 | def print_size(self, size):
100 | return "of length %s" % size
101 |
102 | def display_hint(self):
103 | return 'array'
104 |
105 | class PtrSetPrinter(PtrStdPrinterBase):
106 |
107 | def __init__(self, typename, value):
108 | super(PtrSetPrinter, self).__init__(typename, value, 'set')
109 |
110 | def print_size(self, size):
111 | return "with %s elements" % size
112 |
113 | def display_hint(self):
114 | return 'array'
115 |
116 | class PtrMapPrinter(PtrStdPrinterBase):
117 |
118 | def __init__(self, typename, value):
119 | super(PtrMapPrinter, self).__init__(typename, value, 'map')
120 |
121 | def children(self):
122 | type = self.value.type
123 | return self._iterator(self.sequence, type.template_argument(0), type.template_argument(1))
124 |
125 | class _iterator(six.Iterator):
126 |
127 | def __init__(self, sequence, key_type, value_type):
128 | self.impl = iter(sequence)
129 | self.key_type = key_type
130 | self.value_type = value_type.pointer()
131 | self.key = True
132 |
133 | def __iter__(self):
134 | return self
135 |
136 | def __next__(self):
137 | (index, value) = six.next(self.impl)
138 | if self.key:
139 | value = value.cast(self.key_type)
140 | else:
141 | value = value.cast(self.value_type).dereference()
142 | self.key = not self.key
143 | return (index, value)
144 |
145 | def display_hint(self):
146 | return 'map'
147 |
148 | def print_size(self, size):
149 | return "with %d elements" % int(size / 2)
150 |
151 | class PtrBoostPrinterBase(object):
152 |
153 | def __init__(self, typename, value, container, iterator, value_type):
154 | self.typename = typename
155 | self.impl = container(value['c_'])
156 | self.iterator = iterator
157 | self.value_type = value_type.pointer()
158 |
159 | def to_string(self):
160 | if self.impl.empty():
161 | return "empty " + self.typename
162 | else:
163 | return "%s with %s elements" % (self.typename, len(self.impl))
164 |
165 | def children(self):
166 | return self.iterator(iter(self.impl), self.value_type)
167 |
168 | class PtrUnorderedMapPrinter(PtrBoostPrinterBase):
169 |
170 | def __init__(self, typename, value):
171 | super(PtrUnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator,
172 | value.type.template_argument(1))
173 |
174 | def display_hint(self):
175 | return 'map'
176 |
177 | class _iterator(six.Iterator):
178 |
179 | def __init__(self, impl, value_type):
180 | self.impl = impl
181 | self.step = True
182 | self.value = None
183 | self.value_type = value_type
184 |
185 | def __iter__(self):
186 | return self
187 |
188 | def __next__(self):
189 | if self.step:
190 | self.value = six.next(self.impl)
191 | value = self.value[0]
192 | else:
193 | value = self.value[1].cast(self.value_type).dereference()
194 | self.step = not self.step
195 | return ("", value)
196 |
197 | class PtrUnorderedSetPrinter(PtrBoostPrinterBase):
198 |
199 | def __init__(self, typename, value):
200 | super(PtrUnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator,
201 | value.type.template_argument(0))
202 |
203 | def display_hint(self):
204 | return 'array'
205 |
206 | class _iterator(six.Iterator):
207 |
208 | def __init__(self, impl, value_type):
209 | self.impl = impl
210 | self.value_type = value_type
211 |
212 | def __iter__(self):
213 | return self
214 |
215 | def __next__(self):
216 | return ("", six.next(self.impl)[1].cast(self.value_type).dereference())
217 |
218 | printer = None
219 |
220 | def build_pretty_printers():
221 | global printer
222 |
223 | if printer != None:
224 | return
225 |
226 | printer = printing.Printer("boost.ptr_container")
227 |
228 | printer.add('boost::ptr_deque', (lambda t, v: PtrSequencePrinter(t, v, "deque")))
229 | printer.add('boost::ptr_list', (lambda t, v: PtrSequencePrinter(t, v, "list")))
230 | printer.add('boost::ptr_map', PtrMapPrinter)
231 | printer.add('boost::ptr_multimap', PtrMapPrinter)
232 | printer.add('boost::ptr_multiset', PtrSetPrinter)
233 | printer.add('boost::ptr_set', PtrSetPrinter)
234 | printer.add('boost::ptr_unordered_map', PtrUnorderedMapPrinter)
235 | printer.add('boost::ptr_unordered_multimap', PtrUnorderedMapPrinter)
236 | printer.add('boost::ptr_unordered_multiset', PtrUnorderedSetPrinter)
237 | printer.add('boost::ptr_unordered_set', PtrUnorderedSetPrinter)
238 | printer.add('boost::ptr_vector', (lambda t, v: PtrSequencePrinter(t, v, "vector")))
239 |
240 | def register_pretty_printers(obj):
241 | printing.register_pretty_printer(printer, obj)
242 |
243 | build_pretty_printers()
244 |
245 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
246 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_48/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_48.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | std = None
27 |
28 | class PtrStdPrinterBase(object):
29 |
30 | def __init__(self, typename, value, seq_tag):
31 | self._import_std()
32 | self.typename = typename
33 | self.value = value
34 |
35 | # (try to) init printer of underlying std sequence and get elements
36 | printer = self._get_sequence_printer(seq_tag)
37 | if printer:
38 | seq = value['c_']
39 | if str(seq.type.strip_typedefs()).startswith('std::__debug::'):
40 | seq_typename = 'std::__debug::%s' % seq_tag
41 | else:
42 | seq_typename = 'std::%s' % seq_tag
43 | self.sequence = list(printer(seq_typename, seq).children())
44 | else:
45 | self.sequence = None
46 |
47 | def to_string(self):
48 | if self.sequence != None:
49 | length = len(self.sequence)
50 | if length:
51 | return "%s %s" % (self.typename, self.print_size(length))
52 | else:
53 | return "empty %s" % self.typename
54 | else:
55 | return "opaque %s" % self.typename
56 |
57 | def children(self):
58 | return self._iterator(self.sequence, self.value.type.template_argument(0))
59 |
60 | class _iterator(six.Iterator):
61 |
62 | def __init__(self, sequence, type):
63 | self.impl = iter(sequence)
64 | self.type = type.pointer()
65 |
66 | def __iter__(self):
67 | return self
68 |
69 | def __next__(self):
70 | (index, value) = six.next(self.impl)
71 | return (index, value.cast(self.type).dereference())
72 |
73 | def _import_std(self):
74 | global std
75 | if not std:
76 | try:
77 | import libstdcxx.v6.printers
78 | std = libstdcxx.v6.printers
79 | except:
80 | pass
81 |
82 | def _get_sequence_printer(self, typename):
83 | if typename == "deque":
84 | return std.StdDequePrinter
85 | if typename == "list":
86 | return std.StdListPrinter
87 | if typename == "map":
88 | return std.StdMapPrinter
89 | if typename == "set":
90 | return std.StdSetPrinter
91 | if typename == "vector":
92 | return std.StdVectorPrinter
93 |
94 | class PtrSequencePrinter(PtrStdPrinterBase):
95 |
96 | def __init__(self, typename, value, seq_tag):
97 | super(PtrSequencePrinter, self).__init__(typename, value, seq_tag)
98 |
99 | def print_size(self, size):
100 | return "of length %s" % size
101 |
102 | def display_hint(self):
103 | return 'array'
104 |
105 | class PtrSetPrinter(PtrStdPrinterBase):
106 |
107 | def __init__(self, typename, value):
108 | super(PtrSetPrinter, self).__init__(typename, value, 'set')
109 |
110 | def print_size(self, size):
111 | return "with %s elements" % size
112 |
113 | def display_hint(self):
114 | return 'array'
115 |
116 | class PtrMapPrinter(PtrStdPrinterBase):
117 |
118 | def __init__(self, typename, value):
119 | super(PtrMapPrinter, self).__init__(typename, value, 'map')
120 |
121 | def children(self):
122 | type = self.value.type
123 | return self._iterator(self.sequence, type.template_argument(0), type.template_argument(1))
124 |
125 | class _iterator(six.Iterator):
126 |
127 | def __init__(self, sequence, key_type, value_type):
128 | self.impl = iter(sequence)
129 | self.key_type = key_type
130 | self.value_type = value_type.pointer()
131 | self.key = True
132 |
133 | def __iter__(self):
134 | return self
135 |
136 | def __next__(self):
137 | (index, value) = six.next(self.impl)
138 | if self.key:
139 | value = value.cast(self.key_type)
140 | else:
141 | value = value.cast(self.value_type).dereference()
142 | self.key = not self.key
143 | return (index, value)
144 |
145 | def display_hint(self):
146 | return 'map'
147 |
148 | def print_size(self, size):
149 | return "with %d elements" % int(size / 2)
150 |
151 | class PtrBoostPrinterBase(object):
152 |
153 | def __init__(self, typename, value, container, iterator, value_type):
154 | self.typename = typename
155 | self.impl = container(value['c_'])
156 | self.iterator = iterator
157 | self.value_type = value_type.pointer()
158 |
159 | def to_string(self):
160 | if self.impl.empty():
161 | return "empty " + self.typename
162 | else:
163 | return "%s with %s elements" % (self.typename, len(self.impl))
164 |
165 | def children(self):
166 | return self.iterator(iter(self.impl), self.value_type)
167 |
168 | class PtrUnorderedMapPrinter(PtrBoostPrinterBase):
169 |
170 | def __init__(self, typename, value):
171 | super(PtrUnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator,
172 | value.type.template_argument(1))
173 |
174 | def display_hint(self):
175 | return 'map'
176 |
177 | class _iterator(six.Iterator):
178 |
179 | def __init__(self, impl, value_type):
180 | self.impl = impl
181 | self.step = True
182 | self.value = None
183 | self.value_type = value_type
184 |
185 | def __iter__(self):
186 | return self
187 |
188 | def __next__(self):
189 | if self.step:
190 | self.value = six.next(self.impl)
191 | value = self.value[0]
192 | else:
193 | value = self.value[1].cast(self.value_type).dereference()
194 | self.step = not self.step
195 | return ("", value)
196 |
197 | class PtrUnorderedSetPrinter(PtrBoostPrinterBase):
198 |
199 | def __init__(self, typename, value):
200 | super(PtrUnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator,
201 | value.type.template_argument(0))
202 |
203 | def display_hint(self):
204 | return 'array'
205 |
206 | class _iterator(six.Iterator):
207 |
208 | def __init__(self, impl, value_type):
209 | self.impl = impl
210 | self.value_type = value_type
211 |
212 | def __iter__(self):
213 | return self
214 |
215 | def __next__(self):
216 | return ("", six.next(self.impl)[1].cast(self.value_type).dereference())
217 |
218 | printer = None
219 |
220 | def build_pretty_printers():
221 | global printer
222 |
223 | if printer != None:
224 | return
225 |
226 | printer = printing.Printer("boost.ptr_container")
227 |
228 | printer.add('boost::ptr_deque', (lambda t, v: PtrSequencePrinter(t, v, "deque")))
229 | printer.add('boost::ptr_list', (lambda t, v: PtrSequencePrinter(t, v, "list")))
230 | printer.add('boost::ptr_map', PtrMapPrinter)
231 | printer.add('boost::ptr_multimap', PtrMapPrinter)
232 | printer.add('boost::ptr_multiset', PtrSetPrinter)
233 | printer.add('boost::ptr_set', PtrSetPrinter)
234 | printer.add('boost::ptr_unordered_map', PtrUnorderedMapPrinter)
235 | printer.add('boost::ptr_unordered_multimap', PtrUnorderedMapPrinter)
236 | printer.add('boost::ptr_unordered_multiset', PtrUnorderedSetPrinter)
237 | printer.add('boost::ptr_unordered_set', PtrUnorderedSetPrinter)
238 | printer.add('boost::ptr_vector', (lambda t, v: PtrSequencePrinter(t, v, "vector")))
239 |
240 | def register_pretty_printers(obj):
241 | printing.register_pretty_printer(printer, obj)
242 |
243 | build_pretty_printers()
244 |
245 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
246 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_52/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_52.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | std = None
27 |
28 | class PtrStdPrinterBase(object):
29 |
30 | def __init__(self, typename, value, seq_tag):
31 | self._import_std()
32 | self.typename = typename
33 | self.value = value
34 |
35 | # (try to) init printer of underlying std sequence and get elements
36 | printer = self._get_sequence_printer(seq_tag)
37 | if printer:
38 | seq = value['c_']
39 | if str(seq.type.strip_typedefs()).startswith('std::__debug::'):
40 | seq_typename = 'std::__debug::%s' % seq_tag
41 | else:
42 | seq_typename = 'std::%s' % seq_tag
43 | self.sequence = list(printer(seq_typename, seq).children())
44 | else:
45 | self.sequence = None
46 |
47 | def to_string(self):
48 | if self.sequence != None:
49 | length = len(self.sequence)
50 | if length:
51 | return "%s %s" % (self.typename, self.print_size(length))
52 | else:
53 | return "empty %s" % self.typename
54 | else:
55 | return "opaque %s" % self.typename
56 |
57 | def children(self):
58 | return self._iterator(self.sequence, self.value.type.template_argument(0))
59 |
60 | class _iterator(six.Iterator):
61 |
62 | def __init__(self, sequence, type):
63 | self.impl = iter(sequence)
64 | self.type = type.pointer()
65 |
66 | def __iter__(self):
67 | return self
68 |
69 | def __next__(self):
70 | (index, value) = six.next(self.impl)
71 | return (index, value.cast(self.type).dereference())
72 |
73 | def _import_std(self):
74 | global std
75 | if not std:
76 | try:
77 | import libstdcxx.v6.printers
78 | std = libstdcxx.v6.printers
79 | except:
80 | pass
81 |
82 | def _get_sequence_printer(self, typename):
83 | if typename == "deque":
84 | return std.StdDequePrinter
85 | if typename == "list":
86 | return std.StdListPrinter
87 | if typename == "map":
88 | return std.StdMapPrinter
89 | if typename == "set":
90 | return std.StdSetPrinter
91 | if typename == "vector":
92 | return std.StdVectorPrinter
93 |
94 | class PtrSequencePrinter(PtrStdPrinterBase):
95 |
96 | def __init__(self, typename, value, seq_tag):
97 | super(PtrSequencePrinter, self).__init__(typename, value, seq_tag)
98 |
99 | def print_size(self, size):
100 | return "of length %s" % size
101 |
102 | def display_hint(self):
103 | return 'array'
104 |
105 | class PtrSetPrinter(PtrStdPrinterBase):
106 |
107 | def __init__(self, typename, value):
108 | super(PtrSetPrinter, self).__init__(typename, value, 'set')
109 |
110 | def print_size(self, size):
111 | return "with %s elements" % size
112 |
113 | def display_hint(self):
114 | return 'array'
115 |
116 | class PtrMapPrinter(PtrStdPrinterBase):
117 |
118 | def __init__(self, typename, value):
119 | super(PtrMapPrinter, self).__init__(typename, value, 'map')
120 |
121 | def children(self):
122 | type = self.value.type
123 | return self._iterator(self.sequence, type.template_argument(0), type.template_argument(1))
124 |
125 | class _iterator(six.Iterator):
126 |
127 | def __init__(self, sequence, key_type, value_type):
128 | self.impl = iter(sequence)
129 | self.key_type = key_type
130 | self.value_type = value_type.pointer()
131 | self.key = True
132 |
133 | def __iter__(self):
134 | return self
135 |
136 | def __next__(self):
137 | (index, value) = six.next(self.impl)
138 | if self.key:
139 | value = value.cast(self.key_type)
140 | else:
141 | value = value.cast(self.value_type).dereference()
142 | self.key = not self.key
143 | return (index, value)
144 |
145 | def display_hint(self):
146 | return 'map'
147 |
148 | def print_size(self, size):
149 | return "with %d elements" % int(size / 2)
150 |
151 | class PtrBoostPrinterBase(object):
152 |
153 | def __init__(self, typename, value, container, iterator, value_type):
154 | self.typename = typename
155 | self.impl = container(value['c_'])
156 | self.iterator = iterator
157 | self.value_type = value_type.pointer()
158 |
159 | def to_string(self):
160 | if self.impl.empty():
161 | return "empty " + self.typename
162 | else:
163 | return "%s with %s elements" % (self.typename, len(self.impl))
164 |
165 | def children(self):
166 | return self.iterator(iter(self.impl), self.value_type)
167 |
168 | class PtrUnorderedMapPrinter(PtrBoostPrinterBase):
169 |
170 | def __init__(self, typename, value):
171 | super(PtrUnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator,
172 | value.type.template_argument(1))
173 |
174 | def display_hint(self):
175 | return 'map'
176 |
177 | class _iterator(six.Iterator):
178 |
179 | def __init__(self, impl, value_type):
180 | self.impl = impl
181 | self.step = True
182 | self.value = None
183 | self.value_type = value_type
184 |
185 | def __iter__(self):
186 | return self
187 |
188 | def __next__(self):
189 | if self.step:
190 | self.value = six.next(self.impl)
191 | value = self.value[0]
192 | else:
193 | value = self.value[1].cast(self.value_type).dereference()
194 | self.step = not self.step
195 | return ("", value)
196 |
197 | class PtrUnorderedSetPrinter(PtrBoostPrinterBase):
198 |
199 | def __init__(self, typename, value):
200 | super(PtrUnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator,
201 | value.type.template_argument(0))
202 |
203 | def display_hint(self):
204 | return 'array'
205 |
206 | class _iterator(six.Iterator):
207 |
208 | def __init__(self, impl, value_type):
209 | self.impl = impl
210 | self.value_type = value_type
211 |
212 | def __iter__(self):
213 | return self
214 |
215 | def __next__(self):
216 | return ("", six.next(self.impl)[1].cast(self.value_type).dereference())
217 |
218 | printer = None
219 |
220 | def build_pretty_printers():
221 | global printer
222 |
223 | if printer != None:
224 | return
225 |
226 | printer = printing.Printer("boost.ptr_container")
227 |
228 | printer.add('boost::ptr_deque', (lambda t, v: PtrSequencePrinter(t, v, "deque")))
229 | printer.add('boost::ptr_list', (lambda t, v: PtrSequencePrinter(t, v, "list")))
230 | printer.add('boost::ptr_map', PtrMapPrinter)
231 | printer.add('boost::ptr_multimap', PtrMapPrinter)
232 | printer.add('boost::ptr_multiset', PtrSetPrinter)
233 | printer.add('boost::ptr_set', PtrSetPrinter)
234 | printer.add('boost::ptr_unordered_map', PtrUnorderedMapPrinter)
235 | printer.add('boost::ptr_unordered_multimap', PtrUnorderedMapPrinter)
236 | printer.add('boost::ptr_unordered_multiset', PtrUnorderedSetPrinter)
237 | printer.add('boost::ptr_unordered_set', PtrUnorderedSetPrinter)
238 | printer.add('boost::ptr_vector', (lambda t, v: PtrSequencePrinter(t, v, "vector")))
239 |
240 | def register_pretty_printers(obj):
241 | printing.register_pretty_printer(printer, obj)
242 |
243 | build_pretty_printers()
244 |
245 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
246 |
--------------------------------------------------------------------------------
/boost/share/boost-gdb-printers/boost/v1_56/ptr_container.py:
--------------------------------------------------------------------------------
1 | # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
2 | # GDB pretty printers for Boost.Pointer Container.
3 | #
4 | # This file is part of boost-gdb-printers.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 3 of the License, or
9 | # (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program. If not, see .
18 |
19 | import gdb
20 | import six
21 |
22 | from boost.v1_56.lib.unordered import Map, Set
23 |
24 | import boost.util.printing as printing
25 |
26 | std = None
27 |
28 | class PtrStdPrinterBase(object):
29 |
30 | def __init__(self, typename, value, seq_tag):
31 | self._import_std()
32 | self.typename = typename
33 | self.value = value
34 |
35 | # (try to) init printer of underlying std sequence and get elements
36 | printer = self._get_sequence_printer(seq_tag)
37 | if printer:
38 | seq = value['c_']
39 | if str(seq.type.strip_typedefs()).startswith('std::__debug::'):
40 | seq_typename = 'std::__debug::%s' % seq_tag
41 | else:
42 | seq_typename = 'std::%s' % seq_tag
43 | self.sequence = list(printer(seq_typename, seq).children())
44 | else:
45 | self.sequence = None
46 |
47 | def to_string(self):
48 | if self.sequence != None:
49 | length = len(self.sequence)
50 | if length:
51 | return "%s %s" % (self.typename, self.print_size(length))
52 | else:
53 | return "empty %s" % self.typename
54 | else:
55 | return "opaque %s" % self.typename
56 |
57 | def children(self):
58 | return self._iterator(self.sequence, self.value.type.template_argument(0))
59 |
60 | class _iterator(six.Iterator):
61 |
62 | def __init__(self, sequence, type):
63 | self.impl = iter(sequence)
64 | self.type = type.pointer()
65 |
66 | def __iter__(self):
67 | return self
68 |
69 | def __next__(self):
70 | (index, value) = six.next(self.impl)
71 | return (index, value.cast(self.type).dereference())
72 |
73 | def _import_std(self):
74 | global std
75 | if not std:
76 | try:
77 | import libstdcxx.v6.printers
78 | std = libstdcxx.v6.printers
79 | except:
80 | pass
81 |
82 | def _get_sequence_printer(self, typename):
83 | if typename == "deque":
84 | return std.StdDequePrinter
85 | if typename == "list":
86 | return std.StdListPrinter
87 | if typename == "map":
88 | return std.StdMapPrinter
89 | if typename == "set":
90 | return std.StdSetPrinter
91 | if typename == "vector":
92 | return std.StdVectorPrinter
93 |
94 | class PtrSequencePrinter(PtrStdPrinterBase):
95 |
96 | def __init__(self, typename, value, seq_tag):
97 | super(PtrSequencePrinter, self).__init__(typename, value, seq_tag)
98 |
99 | def print_size(self, size):
100 | return "of length %s" % size
101 |
102 | def display_hint(self):
103 | return 'array'
104 |
105 | class PtrSetPrinter(PtrStdPrinterBase):
106 |
107 | def __init__(self, typename, value):
108 | super(PtrSetPrinter, self).__init__(typename, value, 'set')
109 |
110 | def print_size(self, size):
111 | return "with %s elements" % size
112 |
113 | def display_hint(self):
114 | return 'array'
115 |
116 | class PtrMapPrinter(PtrStdPrinterBase):
117 |
118 | def __init__(self, typename, value):
119 | super(PtrMapPrinter, self).__init__(typename, value, 'map')
120 |
121 | def children(self):
122 | type = self.value.type
123 | return self._iterator(self.sequence, type.template_argument(0), type.template_argument(1))
124 |
125 | class _iterator(six.Iterator):
126 |
127 | def __init__(self, sequence, key_type, value_type):
128 | self.impl = iter(sequence)
129 | self.key_type = key_type
130 | self.value_type = value_type.pointer()
131 | self.key = True
132 |
133 | def __iter__(self):
134 | return self
135 |
136 | def __next__(self):
137 | (index, value) = six.next(self.impl)
138 | if self.key:
139 | value = value.cast(self.key_type)
140 | else:
141 | value = value.cast(self.value_type).dereference()
142 | self.key = not self.key
143 | return (index, value)
144 |
145 | def display_hint(self):
146 | return 'map'
147 |
148 | def print_size(self, size):
149 | return "with %d elements" % int(size / 2)
150 |
151 | class PtrBoostPrinterBase(object):
152 |
153 | def __init__(self, typename, value, container, iterator, value_type):
154 | self.typename = typename
155 | self.impl = container(value['c_'])
156 | self.iterator = iterator
157 | self.value_type = value_type.pointer()
158 |
159 | def to_string(self):
160 | if self.impl.empty():
161 | return "empty " + self.typename
162 | else:
163 | return "%s with %s elements" % (self.typename, len(self.impl))
164 |
165 | def children(self):
166 | return self.iterator(iter(self.impl), self.value_type)
167 |
168 | class PtrUnorderedMapPrinter(PtrBoostPrinterBase):
169 |
170 | def __init__(self, typename, value):
171 | super(PtrUnorderedMapPrinter, self).__init__(typename, value, Map, self._iterator,
172 | value.type.template_argument(1))
173 |
174 | def display_hint(self):
175 | return 'map'
176 |
177 | class _iterator(six.Iterator):
178 |
179 | def __init__(self, impl, value_type):
180 | self.impl = impl
181 | self.step = True
182 | self.value = None
183 | self.value_type = value_type
184 |
185 | def __iter__(self):
186 | return self
187 |
188 | def __next__(self):
189 | if self.step:
190 | self.value = six.next(self.impl)
191 | value = self.value[0]
192 | else:
193 | value = self.value[1].cast(self.value_type).dereference()
194 | self.step = not self.step
195 | return ("", value)
196 |
197 | class PtrUnorderedSetPrinter(PtrBoostPrinterBase):
198 |
199 | def __init__(self, typename, value):
200 | super(PtrUnorderedSetPrinter, self).__init__(typename, value, Set, self._iterator,
201 | value.type.template_argument(0))
202 |
203 | def display_hint(self):
204 | return 'array'
205 |
206 | class _iterator(six.Iterator):
207 |
208 | def __init__(self, impl, value_type):
209 | self.impl = impl
210 | self.value_type = value_type
211 |
212 | def __iter__(self):
213 | return self
214 |
215 | def __next__(self):
216 | return ("", six.next(self.impl)[1].cast(self.value_type).dereference())
217 |
218 | printer = None
219 |
220 | def build_pretty_printers():
221 | global printer
222 |
223 | if printer != None:
224 | return
225 |
226 | printer = printing.Printer("boost.ptr_container")
227 |
228 | printer.add('boost::ptr_deque', (lambda t, v: PtrSequencePrinter(t, v, "deque")))
229 | printer.add('boost::ptr_list', (lambda t, v: PtrSequencePrinter(t, v, "list")))
230 | printer.add('boost::ptr_map', PtrMapPrinter)
231 | printer.add('boost::ptr_multimap', PtrMapPrinter)
232 | printer.add('boost::ptr_multiset', PtrSetPrinter)
233 | printer.add('boost::ptr_set', PtrSetPrinter)
234 | printer.add('boost::ptr_unordered_map', PtrUnorderedMapPrinter)
235 | printer.add('boost::ptr_unordered_multimap', PtrUnorderedMapPrinter)
236 | printer.add('boost::ptr_unordered_multiset', PtrUnorderedSetPrinter)
237 | printer.add('boost::ptr_unordered_set', PtrUnorderedSetPrinter)
238 | printer.add('boost::ptr_vector', (lambda t, v: PtrSequencePrinter(t, v, "vector")))
239 |
240 | def register_pretty_printers(obj):
241 | printing.register_pretty_printer(printer, obj)
242 |
243 | build_pretty_printers()
244 |
245 | # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
246 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Support pretty print STL and variables in ClickHouse
2 |
3 | # 0. Prerequisite
4 | To generate full debug info using clang, we should add option `-fno-limit-debug-info`. And to get full valid .gdb_index section, we should add option `-ggnu-pubnames`. My cmake command:
5 | ```
6 | $ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
7 | $ cd ClickHouse
8 | $ mkdir build
9 | $ cd build
10 | $ cmake ../src/ -DENABLE_TESTS=0 -DCLICKHOUSE_SPLIT_BINARY=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-ggnu-pubnames -fno-limit-debug-info" -DCMAKE_CXX_COMPILER=clang++-10 -DCMAKE_C_COMPILER=clang-10 -DCMAKE_EXE_LINKER_FLAGS="-Wl,--dynamic-linker,/lib64/ld-linux-x86-64.so.2"
11 | ```
12 | otherwise when gdb print types defined in Clickhouse shows:
13 | ```
14 | (gdb) p col_array
15 | $1 = (const DB::ColumnArray *) 0x7fff0527e100
16 | (gdb) p *col_array
17 | $2 =
18 | ```
19 |
20 | # 1. How to use it?
21 | 1. Install gdb and verify that it supports Python scripting (invoke `gdb --version` and check for `--with-python=...` lines).
22 | 2. `mv gdbinit ~/.gdbinit`
23 |
24 | Note: the .gdbinit file will make gdb register libcxx pretty printer, libcxx pretty printer and ClickHouse pretty printer when gdb started.
25 |
26 | 3. Run gdb and type `info pretty-printer`. You should see something like that:
27 |
28 | ```
29 | (gdb) info pretty-printer
30 | global pretty-printers:
31 | ...
32 | clickhouse
33 | PODArray
34 | ...
35 | libstdc++-v6
36 | ...
37 | ```
38 |
39 |
40 |
41 |
42 | # 2. What does it do?
43 |
44 | Adds some nice representation of ClickHouse's internal data structures in GDB.
45 |
46 | ## 2.1 IAST
47 | For example, when printing the `DB::IAST`'s contents, you can get the type of ast and the sql:
48 | ```
49 | (gdb) p *ast │ q
50 | type=ASTSelectWithUnionQuery, sql="SELECT 1"
51 | ```
52 | ## 2.2 IColumn
53 | When printing the `DB::Columnxxx`'s contents, instead of
54 | ```
55 | (gdb) p *col_map
56 | $10 = {> = { = {> = {> = {m_ref_counter = {
57 | value_ = {> = {> = {__a_ = {> = {__a_value = 9}, },
58 | static is_always_lock_free = }, }, }}}, }, _vptr$IColumn = 0x9f8fcd8 }, }, nested = {
59 | value = {> = {px = 0x7fff30e9c200}, }}}
60 | (gdb) p keys_data
61 | $8 = (const DB::IColumn &) @0x7fff2985af30: {> = {> = {m_ref_counter = {
62 | value_ = {> = {> = {__a_ = {> = {__a_value = 1}, },
63 | static is_always_lock_free = }, }, }}}, }, _vptr$IColumn = 0x9f925d0 +16>}
64 | (gdb) p nested_column
65 | $9 = (const DB::ColumnArray &) @0x7fff30e9c200: {> = { = {> = {> = {
66 | m_ref_counter = {value_ = {> = {> = {__a_ = {> = {__a_value = 1}, },
67 | static is_always_lock_free = }, }, }}}, }, _vptr$IColumn = 0x9f8b230 }, }, data = {
68 | value = {> = {px = 0x7fff2d3148e0}, }}, offsets = {value = {> = {px = 0x7fff30e745c0}, }}}
69 | (gdb)
70 | ```
71 | you would see this:
72 | ```
73 | (gdb) p *col_map
74 | $5 = {> = { = type="Map(UInt8, Int32)", size=0., }, nested = {value = {> = {px = 0x7fff30e9c200}, }}}
75 |
76 | (gdb) p nested_column
77 | $6 = ColumnArray size=0
78 | (gdb) p keys_data
79 | $7 = type="UInt8", size=0.
80 | ```
81 |
82 | ## 2.3 IDataType
83 | When printing the `DB::DataTypexxx`'s contents, instead of
84 | ```
85 | (gdb) p map_type
86 | $1 = (const DB::DataTypeMap *) 0x7fff1a40d018
87 | (gdb) p *map_type
88 | $2 = { = { = { = { = {}, },
89 | _vptr$IDataType = 0x9f50740 , custom_name = {__ptr_ = {> = {__value_ =
90 | 0x0}, , 1, true>> = {> = {}, }, }},
91 | custom_text_serialization = {__ptr_ = {> = {
92 | __value_ = 0x0}, , 1, true>> = {> = {}, }, }}, custom_streams = {__ptr_ = {> = {
93 | __value_ = 0x0}, , 1, true>> = {> = {}, }, }}}, }, key_type = {__ptr_ = 0x7ffff6477218, __cntrl_ = 0x7ffff6477200}, value_type = {__ptr_ = 0x7ffff6477258, __cntrl_ = 0x7ffff6477240}, nested = {__ptr_ = 0x7ffff61a7758, __cntrl_ = 0x7ffff61a7740},
94 | static is_parametric = true}
95 | (gdb)
96 | ```
97 | you would see this:
98 | ```
99 | (gdb) source /home/hewenting/workspace/gdb/ClickHouse-pretty-printer/gdbinit
100 | (gdb) p *map_type
101 | $3 = { = { = IDataType = "Map(UInt8,Int32)", }, key_type = std::shared_ptr (count 4, weak 0) = 0x7ffff6477218 => IDataType = "UInt8", value_type =
102 | std::shared_ptr (count 4, weak 0) = 0x7ffff6477258 => IDataType = "Int32", nested = std::shared_ptr (count 1, weak 0) = 0x7ffff61a7758 => IDataType = "Array(Tuple(keys UInt8, values Int32))", static is_parametric = true}
103 | (gdb)
104 | ```
105 |
106 | ## 2.4 PaddedPODArray
107 | when printing the `DB::PaddedPODArray`'s contents, instead of
108 |
109 | ```
110 | $1 = (DB::PaddedPODArray::ResultType> &) @0x7ffff7847030: {, 15, 16>> = {
112 | = { = {}, },
113 | > = {stat713 ic clear_memory = false, static mmap_flags = 34}, static pad_right = 15,
114 | static pad_left = 16, static null = , c_start = 0x7ffff78a5c10 "",
115 | c_end = 0x7ffff78a5c42 '\245' , 'Z' , "\202\031",
116 | c_end_of_storage= 0x7ffff78a5c71 '\245' , 'Z' , "\202\031",
117 | mprotected = false}, }
118 | ```
119 | you would see this:
120 |
121 | ```
122 | $1 = DB::PaddedPODArray of length 50, capacity 97 =
124 | {0 '\000', 0 '\000', 0
125 | '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000
126 | ', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0
127 | '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000
128 | ', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0
129 | '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000
130 | ', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0
131 | '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000
132 | ', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0
133 | '\000', 0 '\000', 0 '\000', 0 '\000'}
134 | ```
135 |
136 |
137 | Note:
138 | * You can write your own pretty printer for some clickhouse classes, If there is some difficuties, let me know(create an issue), I will help you.
139 |
140 |
141 |
142 |
143 | # 3. Gdb useful commands related
144 |
145 | ```
146 | (gdb) info pretty-printer
147 | ...........
148 | (gdb) python
149 | >import gdb
150 | >sn=gdb.selected_frame()
151 | >symbol_table_adn_line=sn.find_sal()
152 | >symtab=symbol_table_adn_line.symtab
153 | >print(symtab.filename, symtab.objfile)
154 | >global_block=symtab.global_block()
155 | >super_block=global_block.superblock
156 | >print(global_block, super_block, global_block.is_global)
157 | >
158 | >### get each symbol in the block
159 | >for sym in global_block:
160 | > if "ColumnArray" in sym.name:
161 | > print(sym.name, " ########## " , sym.symtab)
162 | >end
163 |
164 | (gdb) info vtbl ast
165 | vtable for 'DB::IAST' @ 0xbecac50 (subobject @ 0x7fff30ea5458):
166 | [0]: 0x1a3d5840
167 | [1]: 0x1daecb70
168 | [2]: 0x18fd17f0
169 | [3]: 0x18fd18f0
170 | [4]: 0x18fd19f0
171 | [5]: 0x18fd1a20
172 | [6]: 0x18fd1a50 , std::__1::allocator > const&)>
173 | [7]: 0x1daecbb0
174 | [8]: 0x1daec170
175 | [9]: 0x1db2bf50
176 | [10]: 0x18fd1b40 , std::__1::allocator >, std::__1::less, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > > >&) const>
177 | [11]: 0x1dade2c0
178 | (gdb)
179 | ```
180 |
181 |
182 |
183 | # 4. links:
184 | * https://github.com/ClickHouse/ClickHouse/issues/13601
185 | * https://github.com/myrrc/clickhouse-devtools.git
186 | * https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html
187 | * https://bugs.llvm.org/show_bug.cgi?id=34820 (related to compile with `-ggnu-pubnames` option and use lld with `-Wl,--gdb-index` to generate full valid .gdb_index section in ELF)
188 |
--------------------------------------------------------------------------------