这个堆栈跟踪意味着什么?

时间:2015-03-12 14:40:04

标签: javascript android angularjs google-chrome memory-leaks

Devices tested on: Samsung S4, Ipad
Browsers : Chrome and Safari for mobile
Server : JBOSS 
Export type: war

在常规使用我的应用程序期间,Chrome和Safari(移动设备)会间歇性地崩溃。我向谷歌发送了一份崩溃报告并收到了回复: 线程16 CRASHED [SIGABRT @ 0x000056e7] MAGIC SIGNATURE THREAD

0x40140134      [libc.so + 0x00022134 ] 
0x4013118b      [libc.so + 0x0001318b ] 
0x4013139f      [libc.so + 0x0001339f ] 
0x401300d5      [libc.so + 0x000120d5 ] 
0x4013f9ea      [libc.so + 0x000219ea ] 
0x64b07dd7      [dalvik-mark-stack (deleted) + 0x0222bdd7 ]     
0x40130bbb      [libc.so + 0x00012bbb ] 
0x4015e14d      [libc.so + 0x0004014d ] 
0x4012d2c7      [libc.so + 0x0000f2c7 ] 
0x4015e14d      [libc.so + 0x0004014d ] 
0x40161d2e      [libc.so + 0x00043d2e ] 
0x4012e1d3      [libc.so + 0x000101d3 ] 
0x4012df73      [libc.so + 0x0000ff73 ] 
0x4012bcff      [libc.so + 0x0000dcff ] 
0x78264ae7      [libchrome.2214.109.so -sqlite3.c:14539 ]       sqlite3MemRoundup
0x78264af7      [libchrome.2214.109.so -sqlite3.c:14468 ]       sqlite3MemMalloc
0x78264a8b      [libchrome.2214.109.so -sqlite3.c:17981 ]       mallocWithAlarm
0x78264a15      [libchrome.2214.109.so -sqlite3.c:18014 ]       sqlite3Malloc
0x7826513f      [libchrome.2214.109.so -sqlite3.c:18345 ]       sqlite3DbMallocRaw
0x78277773      [libchrome.2214.109.so -sqlite3.c:56058 ]       sqlite3VdbeMemGrow
0x782798f5      [libchrome.2214.109.so -sqlite3.c:64836 ]       sqlite3VdbeExec
0x78277c19      [libchrome.2214.109.so -sqlite3.c:60748 ]       sqlite3_step
0x7827e3eb      [libchrome.2214.109.so -statement.cc:61 ]       sql::Statement::Run
0x78196339      [libchrome.2214.109.so -sqlite_persistent_cookie_store.cc:1042 ]        content::SQLitePersistentCookieStore::Backend::Commit
0x781936c9      [libchrome.2214.109.so -callback.h:401 ]        base::SequencedWorkerPool::Inner::ThreadLoop
0x781930f5      [libchrome.2214.109.so -sequenced_worker_pool.cc:507 ]  base::SequencedWorkerPool::Worker::Run
0x78192f55      [libchrome.2214.109.so -simple_thread.cc:60 ]   base::SimpleThread::ThreadMain
0x7818674f      [libchrome.2214.109.so -platform_thread_posix.cc:80 ]   base::::ThreadFunc
0x4012b27a      [libc.so + 0x0000d27a ] 
0x4012b412      [libc.so + 0x0000d412 ] 
0x64b07dd7      [dalvik-mark-stack (deleted) + 0x0222bdd7 ]

我将假设内存泄漏。我如何解决这个问题或追查起源?

请注意,我没有使用sqlite命令对sqlite进行任何显式调用。但是,我确实充分利用了html5 localStorage,并且我有使用cookie的外部JS库。

1 个答案:

答案 0 :(得分:1)

堆栈跟踪显示代码在执行应用程序期间遵循的路径。它可以帮助您找到错误发生了。

看起来错误与堆栈跟踪中的sqlite3有关。 inyour stak trace中的每一行都是代码中的函数:

sqlite3MemRoundup
sqlite3MemMalloc
mallocWithAlarm
sqlite3Malloc
sqlite3DbMallocRaw
sqlite3VdbeMemGrow
sqlite3VdbeExec
sqlite3_step

您应该调查使用sqlite的应用程序部分。

我认为这不是JavaScript内存泄漏,但您可以使用Chrome内存分析器来研究内存使用情况并查找泄漏https://developer.chrome.com/devtools/docs/javascript-memory-profiling