def setup_nodes_width(cls, symbol: Union[gdb.Symbol, gdb.MinSymbol]) -> None:
        """
        Detect NODES_WITH from the in-kernel config table

        Args:
            symbol: The ``kernel_config_data`` symbol or minimal symbol.
                It is not used directly.  It is used to determine whether
                the config data should be available.
        """
        # TODO: handle kernels with no space for nodes in page flags
        try:
            cls.NODES_WIDTH = int(config['NODES_SHIFT'])
        except (KeyError, DelayedAttributeError):
            # XXX
            print("Unable to determine NODES_SHIFT from config, trying 8")
            cls.NODES_WIDTH = 8
        # piggyback on this callback because type callback doesn't seem to work
        # for unsigned long
        cls.BITS_PER_LONG = types.unsigned_long_type.sizeof * 8