【问题标题】:android-x86 using gdb | gdbserver for debugging mediaserverandroid-x86 使用 gdb | gdbserver 用于调试媒体服务器
【发布时间】:2014-08-01 09:58:21
【问题描述】:

我可以知道其他使用(gdb 和 gdbserver)调试 mediaserver(Native Binary)的经验

看了几篇博客和手册后,我很困惑。

我仍然在努力获取 GDB 所需的符号信息...

请查找控制台日志...

rajeshkumar@tpvgtvvm1:/media/rajeshkumar/droid_2k14/ref/ws_home/dev1$ python $AUTIL/agdb.py mediaserver
found debugger: /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/android-x86/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7/bin/i686-linux-android-gdb
found symbol: /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/android-x86/out/target/product/x86/symbols/system/bin/mediaserver
found mediaserver, pid is: 1978
attach gdbserver to 1978, listen on port 7890

rajeshkumar@tpvgtvvm1:/media/rajeshkumar/droid_2k14/ref/ws_home/dev1$ i686-linux-android-gdb -q -x ./temp_dbg/gdbclient.cmds /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/android-x86/out/target/product/x86/symbols/system/bin/mediaserver
Reading symbols from /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/android-x86/out/target/product/x86/symbols/system/bin/mediaserver...done.
0x400f95a6 in ?? ()
(gdb) info threads
  Id   Target Id         Frame 
* 1    Thread 1978       0x400f95a6 in ?? ()
(gdb) bt
#0  0x400f95a6 in ?? ()
warning: (Internal error: pc 0x8 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x7 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x7 in read in psymtab, but not in symtab.)

#1  0x00000008 in ?? ()
warning: (Internal error: pc 0x7 in read in psymtab, but not in symtab.)

#2  0x41717bf0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) info sharedlibrary 
From        To          Syms Read   Shared Object Library
0x400079a0  0x40020059  Yes         /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/android-x86/out/target/product/x86/symbols/system/bin/linker
(gdb) 

“./temp_dbg/gdbclient.cmds”的内容

set solib-absolute-prefix /non_exist_dir

set sysroot /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/temp_dbg/symbols/system

set solib-search-path /media/rajeshkumar/droid_2k14/ref/ws_home/dev1/temp_dbg/symbols/system/lib:/media/rajeshkumar/droid_2k14/ref/ws_home/dev1/temp_dbg/symbols/system/bin

target remote 192.168.56.102:7890

以下是我探索的一些可能性,但没有运气......

1,在 Android.mk 模块级别文件中添加了 LOCAL_CFLAGS:= -g -O0 (我尝试过的其他可能值 -ggdb | -ggdb3 )。

2,将全局级别的默认编译器标志 (build/core/combo/select.mk | build/core/combo/TARGET_linux-x86.mk) 修改为“-g -O0”,观察到组件的构建失败,例如Audioflinger,系统/核心/库。我恢复到 -O2。

系统信息...

1、在VirtualBox上安装iso镜像

2、使用午餐选项“5.android_x86-eng”构建镜像。

3、git分支信息(x86/kitkat-x86)“Android-x86 4.4-RC2(KitKat-x86)”

请让我知道其他可能性...

【问题讨论】:

    标签: gdbserver android-x86


    【解决方案1】:

    当您构建您的项目时,能否请您包含 APP_OPTIM:=debug 标志以生成符号信息。

    你的命令看起来像

    ../<project-folder>: ndk-build APP_OPTIM:=debug NDK_DEBUG:=true
    

    【讨论】:

    • 感谢 G3M。使用 chromium android_tools 提供的预构建二进制文件更改默认 gdb 和 gdbserver 帮助我解决了这个问题。
    【解决方案2】:

    作为一个快速破解和解锁自己的方法,我用从https://chromium.googlesource.com/android_tools下载的 chromium android_tools prebuild gedserver ( GNU gdbserver (GDB) 7.6 ) 替换了 prebuild gdbserver ( GNU gdbserver 6.6 )

    使用 i686-linux-android-gdb (GNU gdb (GDB) 7.6) + gdbserver ( GNU gdbserver (GDB) 7.6 ) 我能够进步 在我使用多线程媒体服务器应用程序进行调试时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多