I have some C++ code that crashes in a very confusing way in WinUsb. The crash is timing-dependent (i.e. if I slowly step through execution it doesn't happen), non-local (e.g. if I move one function call inside another function, it makes a third function crash) and when it crashes it more or less always corrupts the stack.
I'm also using MinGW which only outputs DWARF debugging info - not PDBs. So some tools (e.g. x64dbg) can't show debugging info.
Is there any possible way to debug this? On Linux I would use a reversible debugger like rr
but there doesn't seem to be an equivalent for Windows. Does anyone know of any useful tools or techniques for this?