Sentry介绍
sentry
是一个实时事件日志记录和聚合平台。它专门用于监视错误和提取执行适当的事后操作所需的所有信息, 而无需使用标准用户反馈循环的任何麻烦。
Sentry 是一个日志平台,分为客户端和服务端,客户端(目前客户端有Python, PHP,C#, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等
官网对于python java PHP等都支持的很好,最近需要在c++代码里面集成sentry。
下面是Native 的github地址 https://github.com/getsentry/sentry-native
可以从这里下载代码https://github.com/getsentry/sentry-native/releases
但是查阅说明
最低支持的版本是2017。
于是抱着试一试的态度使用vs2015编译。果然发现了很多错误。而且错误大多数这段代码
仔细查阅发现这个是依赖的crashpad里面的mini_chromium这个模块。
网上查询资料发现这个模块最低支持的版本是vs2017。虽然不知道怎么修改这块的代码或者修改了这块代码是不是还会引入了其他的问题。突然想到是不是我不用crashpad这个模块。使用其他替代就可以编译通过呢。于是使用breakpad编译果然通过。下面分享下自己的编译流程。
安装环境
cmake 是必须的
python和clang-format着两个好像是测试的时候需要的和编译无关。可以不用安装。
vs2015工程生成
首先使用cmake生成vs2015的工程
将crashpad改成breakpad 然后点击生成
看到external下面有breakpad的工程就是成功,如果是crashpad的工程需要将build下面的文件清空然后重新生成下。
然后点击Sentry-Native.sln 打开工程。 直接生成会发现很多的警告错误。
需要打开 右键项目 c/c++ 常规 将警告视为错误 选择 否 (所有的项目)
修改完之后编译还是有个编译错误
可能里面有个特殊字符导致的 这个是个测试工程,不影响库的生成, 注释掉就好了
最终编译成功。