gpt4 book ai didi

c++ - PDB 无法显示发布版本崩溃的确切行号,但在二进制调试版本的情况下显示准确的行号

转载 作者:行者123 更新时间:2023-11-30 02:41:11 25 4
gpt4 key购买 nike

我在 Windows 上使用/DEBUG 选项构建了应用程序,这样我就可以分析应用程序崩溃时生成的故障转储。使用 WinDBG (!analyze -v) 我只能看到一些不精确的堆栈跟踪。然而,当我创建调试版本并且我的应用程序崩溃时,WinDBG 会告诉我发生崩溃的精确行号。

我提前为对我的问题的一种抽象总结表示歉意,但我正在寻找对此的不同看法,以及世界各地的开发人员如何发布他们的 C++ 应用程序的构建,以便可以分析应用程序中相应的任何崩溃的转储获取准确的崩溃行号

最佳答案

I am looking for different views on this and how developers around the world do release build of their C++ applications so that dump corresponding any crash in application can be analyzed to get precise line number of crash

欢迎来到事后调试的世界。您的问题是优化发布构建应用程序的典型问题,因此,您需要利用所有可用的工具。大多数时候,实际的行号将不可用。我有一些建议。

不要完全依赖 WinDbg。我同时使用 Windbg 和 Visual Studio 来分析故障转储。我发现通过同时使用两者,我可以更全面地了解潜在问题。您可能还想研究使用 DebugDiag作为分析故障转储的附加工具。

为了帮助查明崩溃原因,我在报告中添加了一个额外的文件。除了转储文件外,我还收集了一个日志文件,其中详细说明了崩溃时用户正在执行的操作的上下文。它并不完美,但是,它有助于了解执行了哪些类型的功能以及如何输入它们。可以自定义报告以包含任何类型的有用信息。

最后,您可以安装自己的 unhandled exception filter收集有助于解决崩溃原因的任何其他信息。

关于c++ - PDB 无法显示发布版本崩溃的确切行号,但在二进制调试版本的情况下显示准确的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com