> I am looking for a tool that can be embedded with an exe file to report or spit out the call stack when the exe (written in C++) crashes.
You really need the OS to do this for you. Assuming your 'crash dump' subroutine even runs (there's no guarantee that it would), there's no guarantee that it would produce any meaningful information either. It could corrupt the information simply by being run itself.
A better idea would be to have a "-debug" command line parameter which could record everything up to the fatal moment, thus giving you a much better idea of how your program got into a crash state in the first place. But this too is useless if your user has an unrepeatable event.
Having said that, there is one open source scheme which may be of some use, but it will need a lot of digging on your part.
Netscape navigator implements a
Quality Feedback System which does as you describe IIRC.
You would need to dig through the vast amount of source code and articles (
here) to find out how it is done, and whether it could be adapted to what you want.
> I read about the PC-lint, but this costs real money
This examines the code for bugs (and other problems) before the code is run. It is not a post-mortem tool for after the event (that's what a debugger is for).
If you think it costs money, how much money do you spend looking for the problems which PC-lint can find?
You can freely download the list of error messages PC-lint can generate. Have any of those been problems to you in the past? How long did it take you to find those bugs (and how much did it cost you?)
--