'Support for new-style classes.
Currently we just locate the dictionary using a transliteration to
python of _PyObject_GetDictPtr, ignoring descriptors'

def proxyval(self, visited):

    if (self.as_address() in visited):
        return ProxyAlreadyVisited('<...>')
    visited.add(self.as_address())
    pyop_attr_dict = self.get_attr_dict()
    if pyop_attr_dict:
        attr_dict = pyop_attr_dict.proxyval(visited)
    else:
        attr_dict = {}
    tp_name = self.safe_tp_name()
    return InstanceProxy(tp_name, attr_dict, int(self._gdbval))
