android-x86 с использованием gdb | gdbserver для отладки медиасервера

Могу ли я узнать чужой опыт использования (gdb и gdbserver) для отладки медиасервера (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, добавлен LOCAL_CFLAGS:= -g -O0 ( другие возможные значения, которые я пробовал -ggdb | -ggdb3 ) в файл уровня модуля Android.mk.

2. Изменены флаги компилятора по умолчанию на глобальном уровне ( build/core/combo/select.mk | build/core/combo/TARGET_linux-x86.mk) на «-g -O0». Наблюдается сбой сборки в таких компонентах, как Audioflinger, система /ядро/библиотека. Я возвращаюсь к -O2.

Системная информация ...

1. Установил iso-образ на VirtualBox.

2, для сборки образа использовал опцию ланча "5. android_x86-eng".

3, информация о ветке git (x86/kitkat-x86) «Android-x86 4.4-RC2 (KitKat-x86)»

Подскажите, пожалуйста, другие возможности...


person RajeshKumar.R    schedule 01.08.2014    source источник


Ответы (2)


Когда вы создаете свой проект, не могли бы вы включить флаг APP_OPTIM:=debug для создания информации о символах.

Ваша команда будет выглядеть

../<project-folder>: ndk-build APP_OPTIM:=debug NDK_DEBUG:=true
person G3M    schedule 04.08.2014
comment
Спасибо Г3М. изменение gdb и gdbserver по умолчанию с помощью двоичного файла предварительной сборки, предоставленного chromium android_tools, помогло мне решить проблему. - person RajeshKumar.R; 05.08.2014

Чтобы быстро взломать и разблокировать себя, я заменил предварительную сборку gdbserver ( GNU gdbserver 6.6 ) на предварительную сборку gedserver chromium android_tools ( GNU gdbserver (GDB) 7.6 ), загруженную с https://chromium.googlesource.com/android_tools

с i686-linux-android-gdb (GNU gdb (GDB) 7.6) + gdbserver (GNU gdbserver (GDB) 7.6) я могу продвинуться в отладке с многопоточным приложением медиасервера.

person RajeshKumar.R    schedule 05.08.2014