Hi All,
sbcl: 1.0.45
slime: 20101210 git a36e054b1
here's my steps:
$ sh run-sbcl.sh  --no-userinit
* (require :asdf)
* (asdf:load-system :swank)
;;; a lot of comiplation output
* (swank:create-server :encoding-systems "utf-8-unix")

Now I slime-connect from emacs and in *slime-repl sbcl* buffer:

CL-USER> (in-package :swank)
#<PACKAGE "SWANK">
SWANK> (reload-system
;;   completion works here but if I type M. it shows:
;;   slime-edit-definition-cont: Error: DEFINITION-SOURCE of function
 ;;  RELOAD-  SYSTEM did not contain meaningful information.
 ;;  I have  tried deleting all fasls in ~/.cache/common-lisp , and
 ;;  tried again ,same result.

SWANK> (in-package :cl-user)
CL-USER> (require :sb-introspect)
(sb-introspect:who-calls
;;   then press M.
;;   slime-edit-definition-cont: Error: failed to find the WRITE-DATE of
;;   /home/jsnell/src/release/sbcl-release-dir-20101205-ykXR23420
;;   /sbcl-1.0.45 /contrib/sb-introspect/introspect.lisp:
;; It depends on compilation time pathname , can I setup some
;; logical pathname translation without recompile all files contrib/* myself?