One thing I've never understood is why stack traces don't, at a bare minimum, contain the values of the arguments passed to the function that threw the exception. That would be immensely helpful for reproducing the error.
Even better would be including the current values of any local variables introduced within the function, and any global variables referenced within the function.