Dr. MinGW 调试工具

备注

本页内容仅用于 Krita 的 Windows 版本。一般情况下,位于 %LOCALAPPDATA%kritacrash.log 的日志文件已经包含了足够的信息,开发人员可以通过它的内容推断出程序崩溃的原因。只有在需要获取更精确的崩溃数据时才要用到调试包。

如何使用调试包

如果你已经安装了 Krita 并想生成程序的回溯追踪数据,最佳方式是下载免安装版本 (可以是最新正式版、稳定测试版和开拓测试版) 和配套的调试包。正式版的调试包在新版发布的文章中可以找到,测试版的调试包和主程序免安装包在同一文件列表,文件名以“-dbg.zip”结尾。

  • 正式版软件的配套调试包可以在 https://krita.org/ 网站的最新版发布公告中找到。你也可以在 https://download.kde.org/stable/krita 目录中找到稳定版本的主程序包和调试包;或者在 https://download.kde.org/unstable/krita 目录中找到测试版本的主程序包和调试包。在目录中主程序的免安装包和调试包的 ZIP 文件会被显示在相邻位置。

  • 确保你下载的主程序免安装包和调试包是同一版本,这是进行调试并得到有用回溯跟踪数据的必须事项。

  • 把 Krita 的免安装包内容解压出来。

  • 把调试包中的内容解压到该 Krita 的主目录,也就是 binlibshare 等目录所在的目录,如下图所示:

    ../_images/Mingw-dbg7zip.png ../_images/Mingw-dbg7zip-dir.png
  • 解压完成后,检查“bin”目录里面有没有一个“.debug”目录。如果没有,那么你很可能选择了错误的解压位置。

如何获取回溯跟踪数据

  1. 如果程序发生了崩溃,Krita 可能会失去响应几秒钟至几分钟,然后弹出程序崩溃对话框。

    ../_images/Mingw-crash-screen.png

    程序崩溃对话框示例。

    • 如果 Krita 失去响应超过几分钟的范畴,那么它的进程很可能已经锁死,无法提供回溯数据。遇到这种情况时,你只能先手动关闭 Krita。接下来请按照下面的指引来检查这个问题是否为程序崩溃。

  2. 打开 Windows 文件管理器并在地址栏输入 %LocalAppData% (不带引号) ,按 回车 键。

    ../_images/Mingw-explorer-path.png
  3. 找到 kritacrash.log 文件 (根据你的设置,它可能被命名为 kritacrash)。

  4. 用 Windows 记事本打开这个文件,滚动到文件最底部,然后再向上滚动直至发现第一组 “Error occurred on <崩溃时间>” ,它的上面还有一段横线。

    ../_images/Mingw-crash-log-start.png

    回溯跟踪数据的开头。

    检查该错误的发生时间是否和崩溃的时间一致。

    ../_images/Mingw-crash-log-end.png

    回溯跟踪数据的结尾。

    从前文横线处开始到文件末尾的部分就是最新的回溯跟踪数据。

    • 如果 kritacrash.log 文件不存在,或者回溯跟踪数据的时间和实际崩溃时间不符,这意味着 Krita 的进程可能发生了锁死,但并没有发生崩溃。在这种情况下也请报告相关问题。

    • 如果回溯跟踪数据被中途截断,或者在崩溃发生的时间点之后没有生成任何数据,则意味着尽管的确发生了崩溃,但程序的崩溃管理器在被手动关闭前来不及完成创建堆栈追踪。在这种情况下,请重新触发一次崩溃,并等待足够长的时间直至程序崩溃对话框弹出。