Dynamic slicing of aspect-oriented programs