Mobile/Fennec/Android/GDB: Difference between revisions
(→Linux) |
|||
Line 59: | Line 59: | ||
--with-gdb-datadir=$prefix/utils --with-system-gdbinit=$prefix/utils/gdbinit | --with-gdb-datadir=$prefix/utils --with-system-gdbinit=$prefix/utils/gdbinit | ||
make -j4 | make -j4 | ||
Reminder: Don't use ~ in the paths you pass here, as Bash wouldn't evaluate it! | |||
The gdb binary will be located at ''android-gdb-objdir/gdb/gdb'' | The gdb binary will be located at ''android-gdb-objdir/gdb/gdb'' |
Revision as of 18:09, 30 March 2012
Using JimDB (Or, Android GDB with Niceness)
Prebuilt binaries
Linux
Download page
Run 'git pull' inside the utils directory to get the latest GDB utilities.
GDB utilities
A set of tools to make Fennec development on Android easier.
Source and documentation.
Building moz-gdb
Building gdb
Linux
Get required packages:
sudo apt-get install bison flex libncurses5-dev texinfo python2.7-dev
Get source:
git clone git://github.com/darchons/android-gdb.git cd android-gdb git checkout android-gdb_7_3
Run configure and make:
mkdir android-gdb-objdir cd android-gdb-objdir export prefix=/nonexistent /path/to/android-gdb/configure --target=arm-elf-linux --with-python=yes --prefix=$prefix \ --with-gdb-datadir=$prefix/utils --with-system-gdbinit=$prefix/utils/gdbinit make -j4
Reminder: Don't use ~ in the paths you pass here, as Bash wouldn't evaluate it!
The gdb binary will be located at android-gdb-objdir/gdb/gdb
Mac OS X
NOTE (BenWa): It failed to built with clang on 2012/01/09
Get required packages:
port install bison flex ncurses texinfo python27
Get source:
git clone git://github.com/darchons/android-gdb.git cd android-gdb git checkout android-gdb_7_3
Run configure and make:
mkdir android-gdb-objdir cd android-gdb-objdir export prefix=/nonexistent /path/to/android-gdb/configure --target=arm-elf-linux --enable-targets=all --with-python=yes --prefix=$prefix \ --with-gdb-datadir=$prefix/utils --with-system-gdbinit=$prefix/utils/gdbinit make -j4
Reminder: Don't use ~ in the paths you pass here, as Bash wouldn't evaluate it!
The gdb binary will be located at android-gdb-objdir/gdb/gdb
Building gdbserver
Linux
Create an NDK toolchain:
cd /PATH/TO/NDK ./build/tools/make-standalone-toolchain.sh
This will tell you that the toolchain was packaged somewhere like /tmp/ndk-username/arm-linux-androideabi-4.4.3.tar.bz2
Extract that toolchain somewhere:
mkdir ~/android-toolchain cd ~/android-toolchain tar -xvf /tmp/ndk-username/arm-linux-androideabi-4.4.3.tar.bz2
Make sure NDK toolchain is in PATH:
export PATH=~/android-toolchain/arm-linux-androideabi-4.4.3/bin:$PATH
Run configure and make for gdbserver:
mkdir android-gdbserver-objdir cd android-gdbserver-objdir /path/to/android-gdb/gdb/gdbserver/configure --host=arm-linux-androideabi \ --with-sysroot=/PATH/TO/NDK/platforms/android-9/arch-arm make -j4
The gdbserver binary will be located at android-gdbserver-objdir/gdbserver.
Install it on your device:
adb push gdbserver /data/local
Mac OS X
Setup a toolchain environment for your build:
/PATH/TO/NDK/build/tools/make-standalone-toolchain.sh --install-dir=android-9-toolchain --platform=android-9
Run configure and make for gdbserver:
mkdir android-gdbserver-objdir cd android-gdbserver-objdir export PATH=android-9-toolchain/bin:$PATH ../android-gdb/gdb/gdbserver/configure --host=arm-linux-androideabi make -j4
The gdbserver binary will be located at android-gdbserver-objdir/gdbserver.
Install it on your device:
adb push gdbserver /data/local
Set up moz-gdb directory
GDB utilities assume the following moz-gdb directory structure:
./bin/ gdb gdbserver ./utils/ gdbinit python/
The following commands will set up the directories and pull in GDB utilities:
mkdir -p moz-gdb/bin cp android-gdb-objdir/gdb/gdb moz-gdb/bin cp android-gdbserver-objdir/gdbserver moz-gdb/bin git clone git://github.com/darchons/android-gdbutils.git moz-gdb/utils
Running
Setup gdbinit file
Linux
Make sure your paths are absolute! The gdbinit file, even though it specifies relative paths by default, will not correctly load debug symbols unless you specify absolute paths.
INCORRECT | CORRECT |
---|---|
|
|
Running GDB with this requires that you enter into the bin directory, and run ./gdb, once your gdbinit file is setup.