蟻ーヴェデルチ

覚悟はいいか?

GDBが用意されていなかったので

最近異動(左遷??)があって全然androidじゃなくなって、arm系の組み込みlinux関連の仕事になった。異動先では誰もgdbを使っていない上に用意もされていなかったので、target board上で動くgdbを自前でbuildしようと思い立った。上手く行ったので、忘れんうちにメモに残す。

Crosscompiling GDB 7.5 for ARM | Alan C. Assis

target用のtermcapをbuildして、toolchainに含めればOKらしい。 6.8でも参考になりました。

wget ftp://ftp.gnu.org/pub/pub/gnu/termcap/termcap-1.3.1.tar.gz -O - | tar xzf -
cd termcap-1.3.1/
CC=arm-hoge-linux-gnueabi-gcc ARCH=arm ./configure --target=arm-hoge-linux-gnueabi --build=x86_64-linux --host=arm-hoge-linux-gnueabi --prefix=${toolchain_path}
make && make install
cd ..

git clone git://sourceware.org/git/binutils-gdb.git
cd binutils-gdb
git checkout gdb_6_8-2008-03-27-release -b 6.8
CC=arm-hoge-linux-gnueabi-gcc ARCH=arm ./configure --target=arm-hoge-linux-gnueabi --build=x86_64-linux --host=arm-hoge-linux-gnueabi
make

printf debuggingが辛い年齢になりました、、、

これはNDKの罠?

Androidプログラミング-NDK-共有ライブラリ(libpng)を作る - tueda

(非常に重要な注意)2011年3月現在、APP_MODULESはオプションで定義しなくても動作に問題ないはずだが、なぜかBUILD_STATIC_LIBRARYに限りこのAPP_MODULESを定義しないとコンパイルしてくれない。忘れると悲惨。

Android NDK | Android Developers

私は8eを使いましたが、この罠?はそのままでした。

odのメモ

od -Ax -j128 -N128 -tx1 -w8 hoge

アドレス表記は16進数、先頭128byteをスキップ、次の128byteを読み込み、16進数1byteずつ表示、8byteで改行。-tは複数指定可能。

hexdump(hd)に比べてフォーマット指定が楽だと思う。

追記

od -Ax -S1 hoge

文字列のアドレスを知りたいときに良いなと思った。

参考文献

od invocation - GNU Coreutils

時空探偵

こんにちは、deusx'sキッチンの時間です。 今日は時空探偵ddのメモ。

とあるバイナリからオフセット指定でコピーしないといけないシチュエーションがあり、man見ながら5分弱試行錯誤した。

dd if=src of=dst bs=1 skip=offset count=size

とあるバイナリがヘッダ+固定サイズ*nというフォーマットになっていて、つまりはヘッダ+固定サイズ*mをオフセットにしたかったというわけ。

参考文献

dd invocation - GNU Coreutils