→ 表示例
#0 0x00a00402 in __kernel_vsyscall ()
#1 0x0059fba0 in raise () from /lib/libc.so.6
#2 0x005a14b1 in abort () from /lib/libc.so.6
#3 0x005d5dfb in __libc_message () from /lib/libc.so.6
#4 0x005de13c in _int_malloc () from /lib/libc.so.6
#5 0x005defed in calloc () from /lib/libc.so.6
#6 0x0804c1e3 in readCPoolDouble (cpool=0x810f034, ptr=0xbf94904c) at test.c:1419
:
#11 0x0804f2ef in main (argc=-1080781884, argv=0x0) at test.c:2442
(gdb) quit
(gdb) set args a b c
(gdb) run
(gdb) list
(gdb) list myputs # myputs という関数定義へ(同じ関数名が複数ある場合は引数の型も指定)
(gdb) list +20 # 20行うしろ
(gdb) print s # 変数 s を表示。(print は、p でもOK)
(gdb) print /d s # 変数 s を10進で表示。
(gdb) backtrace # スタックフレームを表示(呼び出し元の関数を辿ったもの) ※ where と同じ
(gdb) frame 1 # スタックフレームの 1 番目へ移動
(gdb) up # スタックフレームを 1 階層上がる
(gdb) down # スタックフレームを 1 階層下がる
(gdb) break main # 関数 main にブレークポイントを設定
(gdb) next # ブレークポイントで停止した状態から、次へ進める
(gdb) break if i == 4 # 条件付きブレークポイント(i == 4 のときに停止する)を設定
(gdb) jump 20 # 20行目に強制ジャンプ
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
--disable-xxxx とか
--without-xxxx とか
(2) とりあえずビルドしてみる
mkdir out
./configure --prefix=$PWD/out --host=arm-none-linux-gnueabi
# arm-none-linux-gnueabi-gcc を呼んで欲しかったらこのように指定する
make
make install
# prefix に指定したディレクトリ( out/ )にファイルが書き出される
⇒ 途中で「libaaaa がない」とエラーになったら、「libaaaa」を先にビルドする
(3) 必要だったライブラリをビルドしてみる
cd ../aaaa
mkdir out
./configure --prefix=$PWD/out --host=arm-none-linux-gnueabi
# arm-none-linux-gnueabi-gcc を呼んで欲しかったらこのように指定する
make
make install