如何在Qt中检索stacktrace或设备崩溃日志?

如何在Qt中检索stacktrace或设备崩溃日志?,qt,qt4,Qt,Qt4,我想查看设备上的应用程序堆栈跟踪或崩溃日志。Qt是否有任何内置功能可用 我们可以通过写入文件或进行设备调试来获取应用程序日志。 但是,当在目标设备上运行应用程序时发生未知/致命错误时,获取堆栈跟踪非常有用。您没有指定哪个操作系统,但在linux上可以通过此命令使其创建核心文件 设置ulimit-c无限 将其放入.bashrc文件或适当的位置,每当崩溃发生时,您将获得应用程序的核心转储 然后您可以使用gdb对其进行调试 没有内置的解决方案,但是(假设您使用的是c++),提供了一个解决方案。文档有点

我想查看设备上的应用程序堆栈跟踪或崩溃日志。Qt是否有任何内置功能可用

我们可以通过写入文件或进行设备调试来获取应用程序日志。
但是,当在目标设备上运行应用程序时发生未知/致命错误时,获取堆栈跟踪非常有用。

您没有指定哪个操作系统,但在linux上可以通过此命令使其创建核心文件

设置ulimit-c无限

将其放入.bashrc文件或适当的位置,每当崩溃发生时,您将获得应用程序的核心转储


然后您可以使用gdb对其进行调试

没有内置的解决方案,但是(假设您使用的是c++),提供了一个解决方案。文档有点缺乏,它在处理事件处理程序中抛出的异常时遇到了问题,但它可以处理大部分繁重的工作

回答其他答案中的问题:

Gyp应位于src\tools\Gyp\Gyp.bat中。您将运行类似以下内容的操作:

src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp --include=breakpad_include.gypi -Dwin_debug_RuntimeLibrary=3 -Dwin_release_RuntimeLibrary=2 --generator-output=..\build\google_breakpad
breakpad\u include.gypi
文件设置了gyp应该使用的特殊配置。我的看起来像这样:

{
  'target_defaults': {
    'configurations': {
      'Common_Base': {
        'msvs_settings': {
          'VCCLCompilerTool': {
            'TreatWChar_tAsBuiltInType': '0',
          },
        },
      },
    },
  },
}

这使得Qt和VS处理WChar的方式有所不同。其他设置指定要使用的运行库。这必须与Qt使用的内容相匹配。

非常感谢您的回答。