How to debug memory leakage in media server in Android

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to debug memory leakage in media server in Android

How to debug memory leakage in media server in Android

  • Check memory leakage in media server.
    • Set libc debug level. So libc will record back trace for all memory allocate.
      • setprop libc.debug.malloc 1
    • Kill mediaserver to let the libc debug take effect. Android will restart mediaserver.
      • busybox killall -HUP mediaserver
  • you will see below log if you setting right.
  • I/libc    ( 3074): /system/bin/mediaserver using MALLOC_DEBUG = 1 (leak checker)
  • Dump all used memory of mediaserver.
    • dumpsys media.player -m
    • Allocation count 297
    • Total memory 1483423
    • size   262144, dup    1, 0x401f4c18, 0x400b6152, 0x401a6568, 0x4061a95c, 0x40146cfa, 0x4019639c, 0x40146ec2, 0x4014a1ec, 0x4014a3ca, 0x00008a98, 0x400b67aa
    • size   178192, dup    1, 0x401f4c18, 0x400b6152, 0x4280adae, 0x427ffcee, 0x4280ae6c, 0x427ec75a, 0x427f7e22, 0x42807648, 0x428082ea, 0x415144f0, 0x4151334a, 0x413381d0, 0x401dcbc, 0x401d438c, 0x4014d996, 0x405c3c46, 0x405c7516, 0x405c6ad4, 0x412c02ca, 0x412c0584, 0x4108c64c, 0x4107d622, 0x4107fbf2, 0x4107c19a, 0x400b2eac, 0x400b2a00
  • Diff two times of memory dump to check if there is any memory leakage. You can playback one video file between the dump.
    • diff 1.txt 2.txt > diff.txt
    • Get maps file of mediaserver.
      • adb pull proc/<pid of mediaserver>/maps .
    • Use attached script to map back trace to function symbols and file line.
      • ./addr2func.py --root-dir=../../ --maps-file=./maps --product=sabresd_6dq diff.txt
  • Notes: should use eng build for the debug.


添付
コメント

Great!!

%3CLINGO-SUB%20id%3D%22lingo-sub-1102257%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EAndroid%E3%81%AE%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%82%92%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1102257%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CUL%3E%3CLI%3E%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3Elibc%20%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%83%AC%E3%83%99%E3%83%AB%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%97%E3%81%9F%E3%81%8C%E3%81%A3%E3%81%A6%E3%80%81libc%20%E3%81%AF%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%89%E3%82%8C%E3%81%9F%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E3%82%92%E8%A8%98%E9%8C%B2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3Esetprop%20libc.debug.malloc%201%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3Elibc%20%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%20mediaserver%20%E3%82%92%E5%BC%B7%E5%88%B6%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82Android%E3%81%AF%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3Ebusybox%20killall%20-HUP%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%E6%AD%A3%E3%81%97%E3%81%8F%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%83%AD%E3%82%B0%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FLI%3E%3CLI%3EI%2Flibc%20(%203074)%3A%20%2Fsystem%2Fbin%2Fmediaserver%20MALLOC_DEBUG%20%3D%201%20%E3%82%92%E4%BD%BF%E7%94%A8%20(%E3%83%AA%E3%83%BC%E3%82%AF%E3%83%81%E3%82%A7%E3%83%83%E3%82%AB%E3%83%BC)%3C%2FLI%3E%3CLI%3E%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E4%BD%BF%E7%94%A8%E6%B8%88%E3%81%BF%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E3%83%80%E3%83%B3%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3Edumpsys%20media.player%20-m%3C%2FLI%3E%3CLI%3E%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E5%9B%9E%E6%95%B0%20297%3C%2FLI%3E%3CLI%3E%E5%90%88%E8%A8%88%E3%83%A1%E3%83%A2%E3%83%AA%201483423%3C%2FLI%3E%3CLI%3Esize%26nbsp%3B%26nbsp%3B%20262144%2C%20dup%26nbsp%3B%26nbsp%3B%26nbsp%3B%201%2C%200x401f4c18%2C%200x400b6152%2C%200x401a6568%2C%200x4061a95c%2C%200x40146cfa%2C%200x4019639c%2C%200x40146ec2%2C%200x4014a1ec%2C%200x4014a3ca%2C%200x00008a98%2C%200x400b67aa%3C%2FLI%3E%3CLI%3Esize%26nbsp%3B%26nbsp%3B%20178192%2C%20dup%26nbsp%3B%26nbsp%3B%26nbsp%3B%201%2C%200x401f4c18%2C%200x400b6152%2C%200x4280adae%2C%200x427ffcee%2C%200x4280ae6c%2C%200x427ec75a%2C%200x427f7e22%2C%200x42807648%2C%200x428082ea%2C%200x415144f0%2C%200x4151334a%2C%200x413381d0%2C%200x401dcbc%2C%200x401d438c%2C%200x4014d996%2C%200x405c3c46%2C%200x405c7516%2C%200x405c6ad4%2C%200x412c02ca%2C%200x412c0584%2C%200x4108c64c%2C%200x4107d622%2C%200x4107fbf2%2C%200x4107c19a%2C%200x400b2eac%2C%200x400b2a00%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%E3%83%A1%E3%83%A2%E3%83%AA%20%E3%83%80%E3%83%B3%E3%83%97%E3%82%92%202%20%E5%9B%9E%20diff%20%E3%81%97%E3%81%A6%E3%80%81%E3%83%A1%E3%83%A2%E3%83%AA%20%E3%83%AA%E3%83%BC%E3%82%AF%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%83%80%E3%83%B3%E3%83%97%E9%96%93%E3%81%A7%201%20%E3%81%A4%E3%81%AE%E3%83%93%E3%83%87%E3%82%AA%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%86%8D%E7%94%9F%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3E%E5%B7%AE%E5%88%861.txt%202.txt%20%26gt%3B%20diff.txt%3C%2FLI%3E%3CLI%3E%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%9E%E3%83%83%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3E%3CPID%20of%3D%22%22%20mediaserver%3D%22%22%3Emediaserver%26gt%3B%2Fmaps%20%E3%81%AE%20adb%20pull%20proc%2F%3CPID%20%E3%81%A7%E3%81%99%3D%22%22%3E%3C%2FPID%3E%3C%2FPID%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%E6%B7%BB%E4%BB%98%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%E3%82%92%E9%96%A2%E6%95%B0%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E3%81%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%A1%8C%E3%81%AB%E3%83%9E%E3%83%83%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%3CUL%3E%3CLI%3E.%2Faddr2func.py%20--root-dir%3D..%2F..%2F%20--maps-file%3D.%2Fmaps--product%3Dsabresd_6dq%20diff.txt%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E%E6%B3%A8%3C%2FSTRONG%3E%3A%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%AB%E3%81%AFeng%20build%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%3CSPAN%20class%3D%22mce_paste_marker%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1102258%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%97%A5%E6%99%82%3AAndroid%E3%81%AE%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%82%92%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1102258%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E3%81%99%E3%81%94%E3%81%84%EF%BC%81%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E
評価なし
バージョン履歴
最終更新日:
‎09-12-2012 10:27 PM
更新者: