搜索
 找回密码
 立即注册

简单一步 , 微信登陆

【Mstar Andriod】【教你解析coredump】

作者:jayden | 时间:2017-12-8 18:45:27 | 阅读:5139| 只看该作者
【Mstar Andriod】【教你解析coredump】


1.      自己先在code里手动产生一个coredump,当音量调到51时,就会产生coredump
MSrv_SSSound.cpp
MAPI_U8 MSrv_SSSound::SetVolume(MAPI_U8 u8Vol)
{
   printf("----->>>>u8Vol3=%d\n",u8Vol);
    if(u8Vol == 51)
    {
       // U8* u8Pionter = NULL;
       printf("----->>>>Coredump jayden\n");
       // u8Pionter = 0;
        ASSERT(0);    //1106行
        
    }
}
2.      目前学习板子的coredump在var目录下面,
修改coredump在data目录下:
echo /data/%e.core.%p >/proc/sys/kernel/core_pattern
cat /proc/sys/kernel/core_pattern
3.      copy coredump.1075.gz到U盘里,并放入程录序编绎目:Y:\sourcecode\TVOS_L_928_3.0.5.a1\supernova\projects\symbols\applications\bin
解压:  gunzip./symbols/applications/bin/coredump.1075.gz

4. 进到projects的目录下执行
arm-none-linux-gnueabi-gdbsymbols/applications/bin/tvos
5.gdbdebug環境下指向所模擬的路徑, 與所有so lib路徑
         set solib-absolute-prefixsymbols/
6.gdbdebug环境
         (gdb)core symbols/applications/bin/coredump.1075
          bt         (back trace)
    => #0  0xb59ded5c in raise () from ./symbols/lib/libc.so.6
#1  0xb59e2838 inabort () from ./symbols/lib/libc.so.6
#2  0x00074238 inMSrv_SSSound::SetVolume (this=0xb5bb00fc <lock>, u8Vol=1 '\001',u8Vol@entry=51 '3')
    at./src/MSrv_SSSound.cpp:1106
#3  0x00074a9c inMSrv_SSSound::SetAudioVolume (this=<optimized out>,volSrcType=<optimized out>, u8Vol=<optimized out>)
    at./src/MSrv_SSSound.cpp:2559
#4  0x005581d4 inAudioManagerService::Client::setAudioVolume (this=0x12ad8a8, enSoundPath=0,volumn=51 '3')
    atAudioManagerService.cpp:280
#5  0x005729b8 inBnAudioManager:nTransact (this=0x12ad8a8, code=3, data=..., reply=0xbe8687c4,flags=16)
    atIAudioManager.cpp:1305
#6  0x000ceda8 inandroid::BBinder::transact (this=<optimized out>, code=3, data=...,reply=0xbe8687c4, flags=16)
    at../../../src/binder/Binder.cpp:108
#7  0x000c146c inandroid::IPCThreadState::executeCommand (this=this@entry=0x12a5df0,cmd=<optimized out>)
    at../../../src/binder/IPCThreadState.cpp:1084
#8  0x000c1b0c inandroid::IPCThreadState::getAndExecuteCommand (this=this@entry=0x12a5df0)
    at../../../src/binder/IPCThreadState.cpp:435
#9  0x000c1bd0 inandroid::IPCThreadState::joinThreadPool (this=0x12a5df0, isMain=<optimizedout>)
    at../../../src/binder/IPCThreadState.cpp:489
#10 0x00062884 in main (argc=1, argv=0xbe868ae4) atmain.cpp:1517
(gdb)
根据GDB分析出,/src/MSrv_SSSound.cpp:1106  MSrv_SSSound::SetAudioVolume
也就是1106行的  ASSERT(0);    ,即断言!删掉即可!

收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

大神点评1

沙发#
jayden 发表于:2017-12-8 18:45:57
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版