2016-12-18 16:56 GMT+03:00 Niall Douglas
Antony makes the valid point that on Windows there are race problems with the DbgHelp library, in fact not only is it not async-unsafe, it's also thread-unsafe.
He doesn't use DbgHelp in the Windows backend though, he uses Dbgeng.h. This is not the same thing, I think?
Woohoo!
That is amazing news, and congrats to Antony for getting Dbgeng working. Last month when I prereviewed Stacktrace I mentioned that DbgHelp was a steaming pile of poo and that I had had much more reliable experience with the thoroughly superior Dbgeng. Antony asked for some example code because Dbgeng is barely documented, I no longer had access to the code I wrote many years ago which used it. I tried to cobble something together and I made some progress over what Antony had, but I ran out of time due to needing to mind the recent new baby. I'm not actually sure what he changed from what I sent him, mine and his look very close, I must have missed something very small.
I've took Nialls code that uses COM as a base and mixed it with the code I already had that collects stacktrace without COM and DbgHelp. Some hammering produced a class that *probably* async-safely collects stacktrace and can output it using async-unsafe COM. -- Best regards, Antony Polukhin