我将google crashpad库集成到我的应用程序中。一切正常,但现在我想在我自己的服务器上收集崩溃转储。据我从文档中了解,我可以在CrashpadClient::StartHandler()接口中设置"url“参数,crash_handler将被上传到我的服务器上。但我没有找到任何信息,我应该做什么,在服务器端收到这个转储。我在服务器上创建了一个简单的php脚本:
<?php error_log(var_export($_GET, true)); ?>并将其指向"url“参数。
在服务器日志中发现了以下字符串:
mod_fcgid: stderr: array (
mod_fcgid: stderr: 'product' => 'My Product',
mod_fcgid: stderr: 'version' => '1.0.0',
mod_fcgid: stderr: 'guid' => '236ac3bd-918b-4daa-948c-3a564509e3d3',
mod_fcgid: stderr: )接下来我应该如何处理它,以及如何在服务器端组织minidumps收集?
发布于 2020-06-18 00:08:16
在您的服务器上,您需要调用minidump_stackwalk,这是一个用于分析小型转储崩溃文件的Breakpad工具。
如果在MacOS上不带参数地调用minidump_stackwalk,您将获得以下信息:
Usage: minidump_stackwalk [options] <minidump-file> [symbol-path ...]
Output a stack trace for the provided minidump
Options:
-m Output in machine-readable format
-s Output stack contents您需要使用一个指向小型转储文件的路径和一个包含相应符号的目录来调用minidump_stackwalk。
符号是通过断开板工具dump_syms和symupload生成的。在您的服务器上,您还需要公开一种上传这些符号的方法,以便minidump_stackwalk可以访问它们。需要注意的是,symbols文件夹需要以一种非常特殊的格式放置在磁盘上,否则minidump_stackwalk将不会在小型转储中展开调用堆栈。symbols文件夹中所有sym文件的目录结构与以下路径结构/MODULE_NAME/MODULE_ID/MODULE_NAME.sym非常匹配。
有关如何使用minidump_stackwalk的更多信息,请访问here。
发布于 2019-08-20 19:55:22
我使用这个例子创建了一个崩溃转储服务器:https://github.com/chromiumembedded/cef/blob/master/tools/crash_server.py
https://stackoverflow.com/questions/57140924
复制相似问题