从android上的java应用程序分析coredump
我有一个dalvik进程的核心转储,它是com.android.browser。 我肯定知道,这个过程在JNI模块的某个地方终止了 此外,我还有该设备的所有调试符号。但是我不能为这个coredump调用gdb。 我试着这样做:从android上的java应用程序分析coredump,android,gdb,dalvik,coredump,Android,Gdb,Dalvik,Coredump,我有一个dalvik进程的核心转储,它是com.android.browser。 我肯定知道,这个过程在JNI模块的某个地方终止了 此外,我还有该设备的所有调试符号。但是我不能为这个coredump调用gdb。 我试着这样做: arm-eabi-gdb ../symbols/system/bin/dalvikvm android.browser_5879_1354575922.core 但gdb表示: warning: core file may not match specified exe
arm-eabi-gdb ../symbols/system/bin/dalvikvm android.browser_5879_1354575922.core
但gdb表示:
warning: core file may not match specified executable file.
.....
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Core was generated by `com.android.browser'
Program terminated with signal 11, Segmentation fault.
因此,gdb信息共享库不显示任何内容:
No shared libraries loaded at this time.
如何为dalvikvm进程正确加载coredump?好的,答案是提供应用程序进程作为映像名:
arm eabi gdb symbols/system/bin/app_process android.浏览器_5879_1354575922.核心Dalvik内置在共享库libdvm.so中,并从其他进程内部启动。dalvikvm是libdvm.so的命令行包装器。正如您所发现的,app_进程实际上是所有应用程序的二进制文件;它在执行一些应用程序框架初始化后启动Dalvik。