gcc (13.2.0)
       1  # Copyright (C) 2014-2023 Free Software Foundation, Inc.
       2  
       3  # This program is free software; you can redistribute it and/or modify
       4  # it under the terms of the GNU General Public License as published by
       5  # the Free Software Foundation; either version 3 of the License, or
       6  # (at your option) any later version.
       7  #
       8  # This program is distributed in the hope that it will be useful,
       9  # but WITHOUT ANY WARRANTY; without even the implied warranty of
      10  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      11  # GNU General Public License for more details.
      12  #
      13  # You should have received a copy of the GNU General Public License
      14  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
      15  
      16  import gdb
      17  
      18  # Load the xmethods if GDB supports them.
      19  def gdb_has_xmethods():
      20      try:
      21          import gdb.xmethod
      22          return True
      23      except ImportError:
      24          return False
      25  
      26  def register_libstdcxx_printers(obj):
      27      # Load the pretty-printers.
      28      from .printers import register_libstdcxx_printers
      29      register_libstdcxx_printers(obj)
      30  
      31      if gdb_has_xmethods():
      32          from .xmethods import register_libstdcxx_xmethods
      33          register_libstdcxx_xmethods(obj)