当前位置: 首页 > 知识库问答 >
问题:

如何逐步使用ndk-stack?

燕航
2023-03-14

我正在尝试调试此错误:

01-12 13:38:18.068 275-275/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-12 13:38:18.068 275-275/? I/DEBUG: Build fingerprint: 'samsung/a53gxx/a53g:5.0.2/LRX22G/A500HXXU1BOJ2:user/release-keys'
01-12 13:38:18.068 275-275/? I/DEBUG: Revision: '10'
01-12 13:38:18.068 275-275/? I/DEBUG: ABI: 'arm'
01-12 13:38:18.068 275-275/? I/DEBUG: pid: 19854, tid: 19854, name: arif.mercuryapp  >>> com.hermessharif.mercuryapp <<<
01-12 13:38:18.068 275-275/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
01-12 13:38:18.098 275-275/? I/DEBUG:     r0 00000000  r1 00000000  r2 00000001  r3 b6ecbf44
01-12 13:38:18.098 275-275/? I/DEBUG:     r4 b879ebe0  r5 00000000  r6 be9e0c60  r7 00000000
01-12 13:38:18.098 275-275/? I/DEBUG:     r8 00000000  r9 b93ee710  sl 00000000  fp be9e0ce8
01-12 13:38:18.098 275-275/? I/DEBUG:     ip b51084dc  sp be9e0c10  lr b4effde7  pc b6e67204  cpsr 600f0030
01-12 13:38:18.098 275-275/? I/DEBUG: backtrace:
01-12 13:38:18.098 275-275/? I/DEBUG:     #00 pc 00090204  /system/lib/libandroid_runtime.so (GraphicsJNI::getNativeCanvas(_JNIEnv*, _jobject*)+11)
01-12 13:38:18.098 275-275/? I/DEBUG:     #01 pc 00091c31  /system/lib/libandroid_runtime.so
01-12 13:38:18.098 275-275/? I/DEBUG:     #02 pc 00277099  /system/framework/arm/boot.oat
01-12 13:38:19.468 275-275/? I/DEBUG: Tombstone written to: /data/tombstones/tombstone_04

从这个问题中我了解到,我应该使用ndk-stack来获得错误日志的含义。

因此,我在Android Studio中使用SDK管理器下载了Android NDK,现在在我的SDK目录中有一个NDK-bundle文件夹。

$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi-v7a -dump error.txt

文件中说:

要使用ndk-stack,首先需要一个包含应用程序共享库未剥离版本的目录。

顺便说一句,我不知道那可能是什么。

你能给我一个循序渐进的指导吗?一步一步的。

TL;DR:

我有上面的错误日志,需要你帮我理解。

共有1个答案

蒯宏达
2023-03-14

不幸的是,这次崩溃与NDK无关,在这种情况下,您无法从ndk-stack中学到任何东西。

让我解释一下。ndk-stack是一个在您自己的本机代码中破译为崩溃日志的工具。在这里,您没有要调试的本机代码。这个应用程序在一个系统库中崩溃了,你没有办法获得这个特定设备的调试信息(这些系统库的未剥离版本)。

如果你知道如何在Android模拟器上重现这个崩溃,你就有一些机会进一步调试这个原生崩溃。但最有可能的是,这是一个与本机代码无关的bug。也许,你试着在画布被丢弃后画到画布上。

 类似资料:
  • 我正在尝试使用随ndk提供的ndk-stack命令。 不幸的是,当我运行它时,脚本崩溃了。 我在windows上运行的命令是... ndk-stack . cmd-sym build/intermediates/cmake/debug/obj/armea bi-v7a-dump stack . txt stack.txt文件包含来自logcat的逻辑删除。 我收到的错误是.... 回溯(最后一次调

  • 我有四个UITextFields我想在UIAlertView中使用,目前这是它看起来的样子 我希望能够做的是限制每个框为4个字符,每个字段一旦达到4个字符的限制,那么我希望下一个UITextField成为第一个响应器。 我也希望能够做到这一点反过来,所以如果字符正在删除,一旦没有字符可用在第二个字段,到第一个,并开始删除,等等。

  • 问题内容: 我只是将eclipse放在笔记本电脑上,当我使用Step Into调试工具时,它不仅使我进入了代码的下一部分。一个例子是,如果我调用数组列表,它将带我进入数组列表类,并通过所有必需的代码进入 但是,在我的桌面上,它只会带我进入下一段代码。我做: 如果我单击该按钮(从我的桌面进入),则 hello world 将出现在控制台中。 相比之下,如果我在笔记本电脑上“步入” ,它将首先拉起Pr

  • 问题内容: 嗨,大家好,我是Selenium和Python的新手。我只是在抓取站点pagalguy网站。我知道如何向下滚动到页面底部,但是我需要逐步向下滚动,以便Selenium单击所有readmore按钮,但是我不知道如何逐步向下滚动,因此我像下面的一个一样硬编码 我尝试使用while循环将其自动化,但它导致错误,上面的一个可行,但是我希望它简短并循环,以便可以将其用于具有不同页面长度的所有其他

  • 但清单中似乎看不到NDK包。它只显示在UI中。

  • 我正在为一家德国公司评估Dart,将各种Java程序移植到Dart,并对结果进行比较和分析。在浏览器中,飞镖轻松获胜。对于服务器来说,软件性能似乎是一个严重的问题(请看我的这个问题),但这基本上得到了缓解。 现在我正在移植一些“简单”的命令行工具,我没想到会有任何严重的问题,但至少有一个问题。一些工具确实会发出HTTP请求来收集一些数据,独立的Dart虚拟机只以异步方式支持它们。纵观所有我能找到的