add DShellExceptionArray
fix trace behavior
refactor VisitCommandNode