- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的应用程序中,当我尝试将我的日志打印到文件中时遇到段错误。
我正面临致命信号 11。
我的日志功能在 Native 部分,我从 Java 调用它。
日志:
01-01 00:09:38.968: A/libc(3905): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
01-01 00:09:38.976: D/Random(2185): Trip In List :false
01-01 00:09:38.976: D/Random(2185): Odometer :0
01-01 00:09:38.976: D/abc(3905): PreCheck conditions satisfied for WIFI Searching Timer
01-01 00:09:39.601: I/DEBUG(1285): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-01 00:09:39.601: I/DEBUG(1285): Build fingerprint: 'android:android:4.0.4/IMM76I/eng.example.20120608.074924:eng/test-keys'
01-01 00:09:39.601: I/DEBUG(1285): pid: 3905, tid: 3908 >>> com.demo.abc <<<
01-01 00:09:39.601: I/DEBUG(1285): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
01-01 00:09:39.601: I/DEBUG(1285): r0 00000000 r1 00000027 r2 00000048 r3 00000000
01-01 00:09:39.601: I/DEBUG(1285): r4 00000000 r5 100ffadc r6 00000000 r7 00000000
01-01 00:09:39.601: I/DEBUG(1285): r8 016b5760 r9 00000048 10 100ffc98 fp 00006b8b
01-01 00:09:39.601: I/DEBUG(1285): ip fffc25c4 sp 100ffad8 lr deadbaad pc 4008ffd8 cpsr 60000130
01-01 00:09:39.601: I/DEBUG(1285): d0 0000000000000000 d1 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d2 0000000000000000 d3 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d4 0000000000000000 d5 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d6 0000000000000000 d7 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d8 0000000000000000 d9 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d10 0000000000000000 d11 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d12 0000000000000000 d13 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d14 0000000000000000 d15 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d16 0000000000000000 d17 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d18 0000000000000000 d19 0000000421d12176
01-01 00:09:39.601: I/DEBUG(1285): d20 0000008000000080 d21 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d22 3fb0f4a31edab38b d23 3fede16b9c24a98f
01-01 00:09:39.601: I/DEBUG(1285): d24 3e66376972bea4d0 d25 00000000ffffffff
01-01 00:09:39.601: I/DEBUG(1285): d26 0000000000000000 d27 3fc554e7eb0eb47c
01-01 00:09:39.601: I/DEBUG(1285): d28 0000000000000000 d29 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): d30 0000000000000000 d31 0000000000000000
01-01 00:09:39.601: I/DEBUG(1285): scr 80000012
01-01 00:09:39.882: I/DEBUG(1285): #00 pc 00017fd8 /system/lib/libc.so
01-01 00:09:39.882: I/DEBUG(1285): #01 pc 000096c2 /system/lib/libcutils.so (mspace_merge_objects)
01-01 00:09:39.882: I/DEBUG(1285): code around pc:
01-01 00:09:39.882: I/DEBUG(1285): 4008ffb8 b13cb942 b1196821 6809460c d1fb2900 B.<.!h...F.h.)..
01-01 00:09:39.882: I/DEBUG(1285): 4008ffc8 b31b6963 2eadf64b f6cd2127 24006ead ci..K...'!...n.$
01-01 00:09:39.882: I/DEBUG(1285): 4008ffd8 1000f88e e812f7f4 f7f52106 a902e8b0 .........!......
01-01 00:09:39.882: I/DEBUG(1285): 4008ffe8 5380f04f 2006460a 94029304 f7f49403 O..S.F. ........
01-01 00:09:39.882: I/DEBUG(1285): 4008fff8 4622ec6c 20024629 ec74f7f4 effef7f3 l."F)F. ..t.....
01-01 00:09:39.882: I/DEBUG(1285): code around lr:
01-01 00:09:39.882: I/DEBUG(1285): deadba8c ffffffff ffffffff ffffffff ffffffff ................
01-01 00:09:39.882: I/DEBUG(1285): deadba9c ffffffff ffffffff ffffffff ffffffff ................
01-01 00:09:39.882: I/DEBUG(1285): deadbaac ffffffff ffffffff ffffffff ffffffff ................
01-01 00:09:39.882: I/DEBUG(1285): deadbabc ffffffff ffffffff ffffffff ffffffff ................
01-01 00:09:39.882: I/DEBUG(1285): deadbacc ffffffff ffffffff ffffffff ffffffff ................
01-01 00:09:39.882: I/DEBUG(1285): memory map around addr deadbaad:
01-01 00:09:39.882: I/DEBUG(1285): be9ba000-be9db000 [stack]
01-01 00:09:39.882: I/DEBUG(1285): (no map for address)
01-01 00:09:39.882: I/DEBUG(1285): ffff0000-ffff1000 [vectors]
01-01 00:09:39.882: I/DEBUG(1285): stack:
01-01 00:09:39.882: I/DEBUG(1285): 100ffa98 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffa9c 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffaa0 00000048
01-01 00:09:39.882: I/DEBUG(1285): 100ffaa4 018b1d10 [heap]
01-01 00:09:39.882: I/DEBUG(1285): 100ffaa8 00000048
01-01 00:09:39.882: I/DEBUG(1285): 100ffaac 40092bcd /system/lib/libc.so
01-01 00:09:39.882: I/DEBUG(1285): 100ffab0 400d18b4
01-01 00:09:39.882: I/DEBUG(1285): 100ffab4 0000000d
01-01 00:09:39.882: I/DEBUG(1285): 100ffab8 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffabc 40094167 /system/lib/libc.so
01-01 00:09:39.882: I/DEBUG(1285): 100ffac0 40131000
01-01 00:09:39.882: I/DEBUG(1285): 100ffac4 100ffadc
01-01 00:09:39.882: I/DEBUG(1285): 100ffac8 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffacc 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffad0 df0027ad
01-01 00:09:39.882: I/DEBUG(1285): 100ffad4 00000000
01-01 00:09:39.882: I/DEBUG(1285): #00 100ffad8 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffadc fffffbdf
01-01 00:09:39.882: I/DEBUG(1285): 100ffae0 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffae4 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffae8 00000000
01-01 00:09:39.882: I/DEBUG(1285): 100ffaec 00000000
01-01 00:09:39.890: I/DEBUG(1285): 100ffaf0 00000000
01-01 00:09:39.890: I/DEBUG(1285): 100ffaf4 411d0010 /dev/ashmem/dalvik-heap (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffaf8 41227b88 /dev/ashmem/dalvik-heap (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffafc 400e46c5 /system/lib/libcutils.so
01-01 00:09:39.890: I/DEBUG(1285): #01 100ffb00 00000000
01-01 00:09:39.890: I/DEBUG(1285): 100ffb04 400e46c5 /system/lib/libcutils.so
01-01 00:09:39.890: I/DEBUG(1285): 100ffb08 40000110
01-01 00:09:39.890: I/DEBUG(1285): 100ffb0c 00000b4c
01-01 00:09:39.890: I/DEBUG(1285): 100ffb10 411d0018 /dev/ashmem/dalvik-heap (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffb14 00000001
01-01 00:09:39.890: I/DEBUG(1285): 100ffb18 409cec68 /system/lib/libdvm.so
01-01 00:09:39.890: I/DEBUG(1285): 100ffb1c 40986c37 /system/lib/libdvm.so
01-01 00:09:39.890: I/DEBUG(1285): 100ffb20 00000061
01-01 00:09:39.890: I/DEBUG(1285): 100ffb24 41226d08 /dev/ashmem/dalvik-heap (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffb28 016b5748 [heap]
01-01 00:09:39.890: I/DEBUG(1285): 100ffb2c 41227a08 /dev/ashmem/dalvik-heap (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffb30 00000000
01-01 00:09:39.890: I/DEBUG(1285): 100ffb34 100ffdd4
01-01 00:09:39.890: I/DEBUG(1285): 100ffb38 00000061
01-01 00:09:39.890: I/DEBUG(1285): 100ffb3c 5109be98 /dev/ashmem/dalvik-bitmap-2 (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffb40 50c4fe98 /dev/ashmem/dalvik-bitmap-1 (deleted)
01-01 00:09:39.890: I/DEBUG(1285): 100ffb44 000074f6
01-01 00:09:42.085: I/BootReceiver(1427): Copying /data/tombstones/tombstone_01 to DropBox (SYSTEM_TOMBSTONE)
native 零件代码:
void printDebugLog(char *moduleName, char *log, ...)
{
char logMessage[PATHLENGTH];
char tempString[PATHLENGTH];
printf("\nprintDebugLog : 1");
//fp is null, file is not open.
va_list arglist;
printf("\nprintDebugLog : 2");
va_start(arglist, log);
printf("\nprintDebugLog : 3");
vsnprintf(tempString, 1048, log, arglist);
printf("\nprintDebugLog : 4");
strcpy(logMessage, APPNAME);
printf("\nprintDebugLog : 5");
strcat(logMessage, DEBUG);
printf("\nprintDebugLog : 6");
strcat(logMessage, "[");
printf("\nprintDebugLog : 7");
strcat(logMessage, timestamp());
printf("\nprintDebugLog : 8");
strcat(logMessage, "][");
printf("\nprintDebugLog : 9");
strcat(logMessage, moduleName);
printf("\nprintDebugLog : 10");
strcat(logMessage, "] ");
printf("\nprintDebugLog : 11");
strcat(logMessage, tempString);
va_end(arglist);
#if defined(CONSOLE_LOG)
printf("\t%s\n", logMessage);
#endif
if (g_logFileDesc != NULL)
{
if (g_debug)
{
//Check File Size.
/*if (getFileSize(g_logFileDesc) >= MAX_LOG_FILE_SIZE)
{
closeLogFile();
openLogFile();
}
if (fprintf(g_logFileDesc, "%s\n", logMessage) != (strlen(logMessage) + 1))
{
printf("\nFile Delete start from Queue \n");
removeUploadQueue();
}*/
}
}
}
如果您需要更多关于此的代码,请告诉我。
等待您的答复....
最佳答案
段错误信号指向某种类型的内存问题,并且考虑到您将 logMessage 和 tmpString 设置为相同的长度,并且您正在用几个参数和 tmpString 中的内容填充 logMessage,正如 Peter 所说,非常您可能遇到了缓冲区溢出。
最初,logMessage 的长度应为:MAX_APPNAME_LEN + MAX_DEBUG_LEN + 4 + MAX_TIMESTAMP_LEN + MAX_MODULENAME_LEN + PATHLENGTH。
关于Android NDK 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11244120/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!