官方文档: https://docs.sentry.io/platforms/native/guides/qt/
一篇笔记, 也是备忘
crashpad编码的坑
crashpad的源代码全是UTF-8 without BOM
编译的时候一串的 C4819 该文件包含不能在当前代码页中表示的字符
满屏飘红
咱这里有cygwin的zsh环境所以简单粗暴批量加BOM
1 | # for zsh |
Qt目录识别
设置SENTRY_INTEGRATION_QT=YES后手动在CMAKE_PREFIX_PATH添加qt的目录
官方文档说的是安装目录
但实际上需要设置为where/qt/installed/at/lib/cmake/Qt5
才能正确识别
拖着个crashpad程序
编译出来发现还需要带着crashpad_handler一起发布才能抓minidump
虽然也可以在程序里初始化sentry之前把crashpad释放到临时目录之类的
但是实在太不优雅了 (摔
使用 SENTRY_BACKEND=breakpad
, 优雅又干净
注: 进程内异常捕获有健壮性问题, 但….又不是不能用.jpg
crashpad转码白整了 (悲
内嵌sentry到程序内
设置 SENTRY_BUILD_SHARED_LIBS=NO
编译静态库而不是dll
使用时需要在导入header之前做额外工作
1 |
太不优雅, 修改sentry.h把这个define放到文件头去
最终命令行
1 | set CMAKE_PREFIX_PATH=E:/Applications/Qt/static-5.12/lib/cmake/Qt5 |