登录
首页 >  Golang >  Go问答

在 Crashlytics 中利用 golang 获取堆栈跟踪

来源:stackoverflow

时间:2024-03-07 22:06:27 499浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《在 Crashlytics 中利用 golang 获取堆栈跟踪》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我们的应用程序是一个android应用程序,它有一个golang编写的jni。我们使用 fabric crashlytics 来跟踪汽车。

但是,在 jni 发生崩溃后,我们无法在 crashlytics 中获取堆栈跟踪信息。在java中,我们可以得到它。

在object-c for ios应用程序中,我们可以上传dsym文件来映射函数。但是我可以在哪里使用 golang 来实现呢?

fabric支持吗?

现在,在 crashlytics 中,我们只能看到以下内容:

Crashed: Thread
0  libc.so                        0xf6f4c778 (Missing)
1  libc.so                        0xf6f26791 (Missing)
2  libc.so                        0xf6f23933 (Missing)
3  (Missing)                      0x15c791e6 (Missing)
4  libgojni.so                    0xdddd910e (Missing)
5  libc.so                        0xf6f214ee (Missing)
6  (Missing)                      0x15c791e6 (Missing)
7  libgojni.so                    0xde00a8de (Missing)
8  libgojni.so                    0xde00a93e (Missing)
9  libgojni.so                    0xdddd8ed6 (Missing)

解决方案


我们已经解决了这个问题。

背景:

我们构建了一个Android应用程序,它有一个由go编写的JNI,它是由gomobile构建的。 我们使用 Fabric Crashlytics 来监控崩溃信息。 但在Crashlytics中,我们看不到JNI中发生的完整堆栈跟踪信息。

解决方案是:

首先,请检查您的NDK版本,必须是r17c或更高版本。

在 gomobile 命令中添加参数 --work,例如 gomobile bind --work YOUR-SOURCE-CODE-PATH WORK=TEMP-PATH

构建成功后,将jniLibs中的所有文件移动到YOUR-PROJECT-PATH/app/obj

最后,执行 Fabric 文档中列出的步骤。

希望我们的经验可以节省您的时间:-)

以上就是《在 Crashlytics 中利用 golang 获取堆栈跟踪》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>