如何在linux中将Crashpad与守护进程应用程序集成?是否有任何实施指南?我并没有在铬项目现场找到任何官方推荐的步骤。
您需要构建Crashpad并将libbase.a
、libclient.a
和libutil.a
与您的应用程序链接起来。
此外,您还需要添加$CRASHPAD_DIR/include
和$CRASHPAD_DIR/include/third_party/mini_chromium/mini_chromium
作为包含目录。
以下clang++
命令将构建Crashpad并将其与源文件main.cpp
:链接
clang++ $PROJECT_DIR/main.cpp
$CRASHPAD_DIR/lib/libclient.a
$CRASHPAD_DIR/lib/libutil.a
$CRASHPAD_DIR/lib/libbase.a
-I$CRASHPAD_DIR/include
-I$CRASHPAD_DIR/include/third_party/mini_chromium/mini_chromium
-o$OUT_DIR/$MODULE_NAME
-g
-Wl,--build-id
请注意,指定Crashpad库的顺序很重要!libbase.a
需要是最后指定的库,否则clang++将退出并返回错误。
此外,如果在展开小型转储文件时需要函数名和行号,则需要标志-g
和-Wl,--build-id
。
在Ubuntu上使用clang++构建的示例应用程序可以在这里找到。关于构建Crashpad并将其与您自己的应用程序集成以及使用dump_syms
、symupload
和minidump_stackwalk
的完整教程,可以在此处找到。