Sentry命令行工具之ELF符号上传

sentry-cli可以将在各种Linux发行版上生成的ELF符号上传到Sentry,以允许符号化Linux和Android应用程序崩溃。 ELF代表可执行文件和可链接格式,这是Linux上用于二进制文件的文件格式。

与其他平台不同,调试符号没有标准化容器。它们是二进制文件(可执行文件或库)的一部分,并在生成版本构建时因其大小而被剥离。但是,有一种方法可以将它们保存在单独的文件中(在不同的位置或扩展名为.debug):

# There is an executable called "binary" in the CWD
objcopy --only-keep-debug binary binary.debug
strip -g binary
objcopy --add-gnu-debug-link=binary.debug binary

通过包管理器安装的共享库通常在单独的* -dev包中提供它们的调试信息,并将它放在像/ usr / local / debug / ....这样的位置。要从这些库接收符号化的堆栈跟踪,请确保还要上传它们的符号除了你的应用程序的符号。

一、基本上传

使用upload-dif上传ELF符号并指定精灵类型。该命令将反复扫描提供的文件夹或ZIP存档。如果将调试信息剥离到单独的文件中,请传递--no-bin选项以跳过已剥离的可执行文件或库。

注意
由于调试文件属于项目,因此您需要指定正在使用的组织和项目。有关此内容的更多信息,请参阅使用项目。

 所有最近的编译器和链接器都会生成一个唯一的构建ID,甚至在剥离二进制文件时保留它。 sentry-cli使用此标识符将符号与崩溃事件相关联。如果由于某种原因缺少此ID,请在剥离之前调用upload-dif,以便sentry-cli可以从未提取的文件中计算包含调试信息的稳定标识符。

例:

$ sentry-cli upload-dif --no-bin -t elf .

二、上传选项

您可以为上载过程提供一些选项

--no-bin

从上载中排除可执行文件和库,仅搜索调试文件。如果已删除调试信息并将其移动到单独的文件中,请激活此设置。

--no-debug

排除仅包含已删除调试信息的文件。上载未翻录的二进制文件时使用此选项,以避免在搜索文件夹和存档时使用错误的文件。 --no-zips默认情况下,sentry-cli将打开并搜索ZIP存档以查找文件。从iTunes Connect下载构建时,这尤其有用。如果搜索路径包含没有调试信息文件的大型ZIP存档以加快搜索速度,请使用此开关禁用。

--no-reprocessing

此参数可防止Sentry立即触发重新处理。在极少数情况下,如果您希望以多个批次上载文件,并且希望确保Sentry在上载某些可选的dsyms之前不开始重新处理,则它非常有用。请注意,虽然有人仍然可以在此期间触发从UI重新处理。

猜你喜欢

转载自blog.csdn.net/u013702678/article/details/83153826