我正在开发一个多线程应用程序,这是死锁。
我正在使用 Visual C++ Express 2008 来跟踪程序。一旦发生死锁,我只是暂停程序并跟踪。我发现当死锁发生时,我的 C++ 扩展中会有两个名为 python 的线程。
他们都在python代码中使用了Queue,所以我猜死锁可能是由Queue引起的。但是,一旦扩展进入 python 代码,我只能从 VC++ 调试器中看到 asm 代码和二进制文件。
我想知道暂停程序后有什么方法可以转储python代码的调用堆栈吗?我怎么知道线程中有什么锁导致了死锁?