gpt4 book ai didi

java - 来自 logcat 调试的致命信号 11 (SIGSEGV) 位于 0x00000000(代码=1)

转载 作者:行者123 更新时间:2023-11-30 15:32:18 28 4
gpt4 key购买 nike

我正在使用 C 代码调试我的 Android 项目,logcat 消息显示:

I/DEBUG   (13509): backtrace:
I/DEBUG (13509): #00 pc 000106dc /system/lib/libc.so (dlmalloc+1463)
I/DEBUG (13509): #01 pc 0000cf3f /system/lib/libc.so (malloc+10)
I/DEBUG (13509): #02 pc 00011d0d /system/lib/libutils.so (android::SharedBuffer::alloc(unsigned int)+8)
I/DEBUG (13509): #03 pc 00014cf7 /system/lib/libutils.so (android::VectorImpl::setCapacity(unsigned int)+22)
I/DEBUG (13509): #04 pc 0007fd79 /system/lib/libandroid_runtime.so (android::TextLayoutValue::TextLayoutValue(unsigned int)+108)
I/DEBUG (13509): #05 pc 000811a9 /system/lib/libandroid_runtime.so (android::TextLayoutCache::getValue(SkPaint const*, unsigned short const*, int, int, int, int)+184)
I/DEBUG (13509): #06 pc 00081589 /system/lib/libandroid_runtime.so (android::TextLayoutEngine::getValue(SkPaint const*, unsigned short const*, int, int, int, int)+36)
I/DEBUG (13509): #07 pc 0007f799 /system/lib/libandroid_runtime.so (android::TextLayout::getTextRunAdvances(SkPaint*, unsigned short const*, int, int, int, int, float*, float*)+42)
I/DEBUG (13509): #08 pc 0007c60d /system/lib/libandroid_runtime.so
I/DEBUG (13509): #09 pc 0007c7f9 /system/lib/libandroid_runtime.so
I/DEBUG (13509): #10 pc 0001e690 /system/lib/libdvm.so (dvmPlatformInvoke+112)
I/DEBUG (13509): #11 pc 0005100f /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+426)
I/DEBUG (13509): #12 pc 00027aa0 /system/lib/libdvm.so
I/DEBUG (13509): #13 pc 0002ce84 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
I/DEBUG (13509): #14 pc 000674bf /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+374)
I/DEBUG (13509): #15 pc 0007066f /system/lib/libdvm.so
I/DEBUG (13509): #16 pc 00027aa0 /system/lib/libdvm.so
I/DEBUG (13509): #17 pc 0002ce84 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
I/DEBUG (13509): #18 pc 000671a1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
I/DEBUG (13509): #19 pc 0004d2d7 /system/lib/libdvm.so
I/DEBUG (13509): #20 pc 0004d391 /system/lib/libandroid_runtime.so
I/DEBUG (13509): #21 pc 0004e22d /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+540)
I/DEBUG (13509): #22 pc 00000e67 /system/bin/app_process
I/DEBUG (13509): #23 pc 000128b3 /system/lib/libc.so (__libc_init+38)
I/DEBUG (13509): #24 pc 00000b74 /system/bin/app_process

消息告诉我问题是 malloc,看来 bug 是来自 libandroid_runtim。

如何知道我的项目出了什么问题?因为该消息没有显示任何有关我的代码位置的信息,包括 java 和 c。

请帮我解决这个问题。困扰我很久了非常感谢。

最佳答案

您得到了 NULL 取消引用(这就是 0x00000000 所指示的)。由于它位于 malloc 中,这可能意味着您在信号之前的某个时间在 malloc 返回区域之外写入,从而损坏了内存分配器的内部结构。我建议使用 valgrind 来检测确切的点,我认为它可以在 Android 上使用,但需要付出一些努力。

关于java - 来自 logcat 调试的致命信号 11 (SIGSEGV) 位于 0x00000000(代码=1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24300291/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com