I generally use Eclipse's remote debugging facilities. I'm not sure
what appserver you're using, but with Tomcat you can do the following:
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
catalina jpda start
Then in Eclipse you select a project, choose "Open Debug Dialog" and
create a new "Remote Java Application" configuration. The default
values will connect to the Tomcat server you just started.
You should have all the appropriate Myfaces source trees imported as
projects. Then, just set breakpoints in the code and hit your
application as normal. It will suspend whenever one of the breakpoints
is hit. Then you can do the normal debugger stuff: continue execution,
step over, step into, etc. Eclipse will also list all the variables in
use and their values.