What you want to capture at crash is not only call stack, but some other info too - like loaded modules, memory map and sometimes whole memory contents.
On Windows this can be done with Minidump:
https://msdn.microsoft.com/en-us/...ary/windows/desktop/ms680369.aspx
You can call just one function (MiniDumpWriteDump) to write the dump file. When you will get it on your dev machine, you can open it into Visual Studio debugger and examine call stack, variable values, threads, loaded dll files and more - exactly same as you would be debugging live process (except you cannot step of course). The contents of minidump will contain whatever you specify at the time of creating dump file -
https://msdn.microsoft.com/en-us/...ary/windows/desktop/ms680519.aspx.
There are actually nice ready to use solutions that will do this automatically and send dump file via e-mail or http upload. You just need to load one dll into your application at startup.
Google Breakpad:
https://github.com/google/breakpad
CrashRpt:
http://crashrpt.sourceforge.net/