首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将"adb dumpsys meminfo --unreachable“输出中的函数偏移量替换为源代码行号

将"adb dumpsys meminfo --unreachable“输出中的函数偏移量替换为源代码行号
EN

Stack Overflow用户
提问于 2021-03-30 20:04:01
回答 1查看 46关注 0票数 0

要查找我的应用程序的本机C代码的内存泄漏,我运行以下命令

代码语言:javascript
复制
adb shell dumpsys meminfo --unreachable $(adb shell pidof com.mycompany.myapp)

我得到了以下输出

代码语言:javascript
复制
6 bytes unreachable at ee1551b0
   and 654 similar unreachable bytes in 109 allocations
   contents:
   ee1551b0: 31 2e 30 2e 30 00                               1.0.0.
          #00  pc 000421e4  /apex/com.android.runtime/lib/bionic/libc.so (malloc +68)
          #01  pc 00126670  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction7 +80)
          #02  pc 0011d2b9  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so
          #03  pc 0011d025  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction6 +165)
          #04  pc 0011e82c  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction5 +892)
          #05  pc 00120ea7  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so
          #06  pc 0012091c  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so
          #07  pc 00120144  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so
          #08  pc 0011eebe  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so
          #09  pc 0011e6d4  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction4 +548)
          #10  pc 00121924  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction3 +68)
          #11  pc 00121743  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction2 +99)
          #12  pc 001221c9  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (myCfunction1 +409)
          #13  pc 00121f4d  /data/app/~~XX==/com.mycompany.myapp-W6-xx==/lib/x86/mylib.so (Java_com_mycompany_myapp_myjavaclass_myjavamethod +333)

我正在寻找一种简单的方法来替换偏移函数(+333,+409,+99,...)按源代码的行号。我通过在tombstone文件上使用ndk-stack来做这类事情。也许有一种工具可以破译“dumpsys meminfo --unreachable”的输出。

EN

回答 1

Stack Overflow用户

发布于 2021-03-30 22:17:03

我找到了一个简单的解决方案。我将调试器附加到进程中,设置了一个断点,然后转到android studio的lldb控制台。要在函数后将breapoint设置为给定的偏移量,我输入此处给出的命令https://stackoverflow.com/a/23250892/9459302

例如b -a (void*()(void,size_t)) myCfunction1 +400

其中(void*(*)(void*, size_t))是myCfunction1的原型

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66870608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档