我现在正在调试一个利用许多不同线程的程序.
有一个例外是不时抛出的.问题是没有办法知道什么线程导致了问题...
有没有人知道抛出异常后获得堆栈跟踪的简单方法?我想过简单地写一个调试消息,但它会是一个巨大的:-)我想有比这更好的技术......
我正在使用visual studio 2008 - 原生c ++项目....
除非我非常错误,否则您需要知道哪个线程触发了异常才能使用Visual Studio调试器的调用堆栈视图,这显然是您目前所处的catch-22情况.
我要尝试的一件事是看看是否可以在抛出异常时使调试器中断(使用Debug> Exceptions).您必须明确启用它,但如果您知道抛出了什么类型的异常,这可能允许您计算抛出的位置.
除此之外,在异常的构造函数中放置一个断点(如果它是你自己的一个)也应该允许你找出触发它的位置.
如果这些方法不适合您,我会按照您的建议查看调试消息.