小伙子们好日子。我的 Android 应用程序出现了一些问题。我一直在构建和使用 C 库(libcurl 和我的来自 tje JNI 接口的 C 文件)有起有落,但直到今天它是一帆风顺的:虽然它有时工作得很好,但有时它只是崩溃——但完成了 C 系列微积分它的任务。
基本上我正在使用 libcurl 进行一系列 URL 调用并分析它们的结果。LogCat 不时向我显示以下内容(我省略了一些无聊的行):
11-26 15:47:04.930: I/DEBUG(4492): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-26 15:47:04.930: I/DEBUG(4492): Build fingerprint: 'samsung/GT-I9100P/GT-I9100P:2.3.6/GINGERBREAD/BVKL2:user/release-keys'
11-26 15:47:04.935: I/DEBUG(4492): pid: 9556, tid: 9568 >>> XX.XX.XX <<<
11-26 15:47:04.935: I/DEBUG(4492): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000034
11-26 15:47:04.935: I/DEBUG(4492): r0 00000000 r1 47378718 r2 00000000 r3 00000000
11-26 15:47:04.935: I/DEBUG(4492): r4 0000002c r5 afd41544 r6 47523008 r7 00000000
11-26 15:47:04.935: I/DEBUG(4492): r8 00010000 r9 0000002f 10 473787b4 fp 47378710
11-26 15:47:04.935: I/DEBUG(4492): ip 47378698 sp 473786d0 lr afd17b77 pc afd2ea7e cpsr 40000030
11-26 15:47:04.935: I/DEBUG(4492): d0 0000000200000009 d1 3ff8000000000000
11-26 15:47:05.080: I/DEBUG(4492): #00 pc 0002ea7e /system/lib/libc.so
11-26 15:47:05.080: I/DEBUG(4492): #01 pc 0002f456 /system/lib/libc.so
11-26 15:47:05.080: I/DEBUG(4492): #02 pc 00030974 /system/lib/libc.so
11-26 15:47:05.080: I/DEBUG(4492): code around pc:
11-26 15:47:05.080: I/DEBUG(4492): afd2ea5c f8c40504 e69351c8 050268a0 9b03d417
11-26 15:47:05.085: I/DEBUG(4492): afd2ea6c 98039a05 eb071899 463a0309 fcfaf7ff
11-26 15:47:05.085: I/DEBUG(4492): code around lr:
11-26 15:47:05.085: I/DEBUG(4492): afd17b54 2074f5a0 0301f10a 7010f5a0 bfc89303
11-26 15:47:05.085: I/DEBUG(4492): afd17b64 462a9004 46314638 f8cd464b f7f38000
11-26 15:47:05.085: I/DEBUG(4492): stack:
11-26 15:47:05.085: I/DEBUG(4492): 47378690 47378718
11-26 15:47:05.085: I/DEBUG(4492): 47378694 00000030
11-26 15:47:05.085: I/DEBUG(4492): 47378698 473786a4
11-26 15:47:05.085: I/DEBUG(4492): 4737869c 00000000
11-26 15:47:05.085: I/DEBUG(4492): 473786a0 00000000
我知道这是一个非常普遍的问题,并且一直在尝试找出问题所在。我不明白如何使用ndk-stack工具,因为libc不是我实现的共享库的一部分,而是通用库的一部分。
如果引用的 .so 文件是我的,那就很简单了,但是怎么会弹出这样的错误呢?如果您对我将如何调试它有任何想法,非常欢迎您!