Slime's default inspector won't show slot values for metaclasses that override the default storage locations for objects slots (i.e. where the default slot-boundp returns nil). The elephant interface to Berkeley-DB is one such system. The
(defmethod inspect-for-emacs ((o standard-object) inspector) (declare (ignore inspector)) (values "An object." `("Class: " (:value ,(class-of o)) (:newline) "Slots:" (:newline) ,@(loop for slot in (swank-mop:class-slots (class-of o)) for slot-def = (find-effective-slot o slot) for slot-name = (swank-mop:slot-definition-name slot-def) collect `(:value ,slot-def ,(string slot-name)) collect " = " collect (if (swank-mop:slot-boundp-using-class (class-of o) o slot) `(:value ,(swank-mop:slot-value-using-class (class-of o) o slot-def)) "#<unbound>") collect '(:newline)))))
If you add the two calls to slot-boundp-using-class and slot-value-using-class as shown above you get the expected proper behavior for lisps that don't call the -using-class mop functions from the slot-value and slot-boundp functions. (I ran into this on Allegro 7.0 under Mac OS X).
The other change is to add these two functions to the swank-mop package exports.
It's a minor enough change I figured someone who checks in regularly can update this and provide some judgement on whether there are likely to be any problems.
Regards, Ian