3

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

4

3 回答 3

5

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

cout << __LINE__ << endl;

在那之后,当它崩溃时,我可以捕获问题。


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

于 2013-10-22T11:53:26.573 回答
2

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

于 2013-10-22T11:55:38.063 回答
1

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

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

于 2013-10-22T12:48:26.917 回答