我有一个并行 (MPI) c/c++ 程序,它在某些情况下不时会导致错误。一旦发生错误,将打印一条消息并退出程序;我想设置一个断点以查看堆栈以及有关导致错误的原因的更多详细信息。我正在使用 TotalView 来调试东西,我希望它在我的错误例程中的断点处停止。我希望它总是自动设置这个断点。有没有办法做到这一点?
我正在研究使用 signal.h 和 raise,但目前尚不清楚 TotalView 如何响应。
看这个问题,在 MPI 错误后如何在 TotalView 中停止?,看来 C++ 异常处理,即 throw(),会自动导致 TotalView 停止。在 C 中执行此操作的正确方法是什么?