A bit of a pie in the sky idea, but....
I am currently tracing through code like this...
XMLDOMVisitor >> visitDocument: theDocument
theDocument nodes do: [ :each | each accept: self ]
and its hard to get a feel for where "each" is in theDocument. I
wonder if it would even be possible for the debugger to have a tab
that showed a list of "theDocument nodes" with a cursor positioned at
"each" ? Maybe the #do: iterator is automatically identified, or
maybe you'd need a pragma to define the tab, specifying the list
contents and which variable is the cursor. When the program crashes
on an item, you could selected an item a few earlier and choose to
break on that data value.
So I guess all of it would be tough, but anyway thought I'd share that
flash of an idea.
cheers -ben