Devices tested on: Samsung S4, Ipad
Browsers : Chrome and Safari for mobile
Server : JBOSS
Export type: war
在正常使用我的应用程序期间,Chrome 和 Safari(移动版)间歇性崩溃。我向谷歌发送了一份崩溃报告并收到了回复: 线程 16 崩溃 [SIGABRT @ 0x000056e7] 魔法签名线程
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,并且我有外部 JS 库,这些库利用 cookie 进行存储。
最佳答案
堆栈跟踪显示代码在应用程序执行期间所遵循的路径。它可以帮助您找到错误发生的地方。
看起来错误与堆栈跟踪中的 sqlite3
有关。 stak trace 中的每一行都是代码中的一个函数:
sqlite3MemRoundup
sqlite3MemMalloc
mallocWithAlarm
sqlite3Malloc
sqlite3DbMallocRaw
sqlite3VdbeMemGrow
sqlite3VdbeExec
sqlite3_step
您应该调查应用程序中使用 sqlite
的部分。
我不认为这是 JavaScript 内存泄漏,但您可以使用 Chrome 内存分析器研究内存使用情况并找到泄漏 https://developer.chrome.com/devtools/docs/javascript-memory-profiling
关于javascript - 这个堆栈跟踪是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29012717/