javascript - 这个堆栈跟踪是什么意思?

标签 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 崩溃 [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/

相关文章:

javascript - 在沙箱之间捕获 YUI 事件

javascript - Angular 在 HttpClient.get header 中设置授权

javascript - 我的 Angular 应用程序需要两列,但这些列的内容可能会根据路线的不同而有很大差异。如何设置我的组件?

AngularJS - CSS3 高度动画(自动) - 有时有效

javascript - 定制 Angular 过滤器

javascript - 路由在 angularjs 中不起作用

javascript - 如何获得总用户中的页面访问者百分比

android - 如何处理 API21 中的 shouldInterceptRequest 参数更改?

android - 开发flutter应用程序而无需在我的机器中实际安装flutter

android - MediaMuxer 错误 "Failed to stop the muxer"