如何获取程序崩溃的行

时间:2013-10-22 11:48:39

标签: c++ c visual-studio-2010

我有一个c ++程序,我想显示程序在控制台中崩溃的行号!我正在使用VS2010!甚至可能吗?我使用opencv,而opencv就是这样做的! 任何想法?

3 个答案:

答案 0 :(得分:5)

我有同样的问题,有一个代码,我无法调试它(它必须不停地运行)。我在每个怀疑行之前放下了代码:

cout << __LINE__ << endl;

之后,当它崩溃时,我可以陷阱问题。


但标准方法是使用调试器并放置条件断点。 (我不确定它对你有帮助)

答案 1 :(得分:2)

我建议使用具有合理暂停点的调试器,并检查是否达到了这些暂停点。我比控制台调试消息更喜欢这个,因为它不会污染你的代码。

答案 2 :(得分:1)

有时您无法使用调试器,例如当你无法在本地重现崩溃时。在这种情况下,您需要将try/catch放在顶层以捕获并报告所有异常(在Windows上确保您还捕获结构化异常)并订阅signals以捕获并报告{{1}等等。

然后您可以记录堆栈跟踪(不可移植并需要调试符号)或创建小型转储(不可移植)。