I would definitely go with Norman's notion of only keeping track of the history if a compiler flag was set (and this flag was NOT set by default). Perhaps I am being biased by count-graphs kinds of things, but still ... On the other hand, having the exception just contain the line/file where it was raised (initially, what ever that exactly means) is cheap and perhaps ok by default.