読者です 読者をやめる 読者になる 読者になる

halka-tech

技術的なことを書きます

debianにgdbを入れてみました

debiangdbが入っていないようなので入れて見ました.
最初は

wget ftp://ftp.gnu.org/gnu/gdb/gdb-m.n.tar.gz

とかしてtarでごにょごにょと思ったらapt-getで行けました.

apt-getでインストール

とりあえずsuにして,apt-get updateをしました.

debian:/home/halka# apt-get install gdb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
提案パッケージ:
gdb-doc
以下のパッケージが新たにインストールされます:
gdb
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
2411kB 中 2411kB のアーカイブを取得する必要があります。
展開後に追加で 5181kB のディスク容量が消費されます。
未選択パッケージ gdb を選択しています。
(データベースを読み込んでいます ... 現在 24914 個のファイルとディレクトリがインストールされています。)
(.../gdb_6.4.90.dfsg-1_i386.deb から) gdb を展開しています...
gdb (6.4.90.dfsg-1) を設定しています ...

動かす

どうやらこれでできたらしいので,長門さんhello world的なものを表示するプログラムをアセンブラで見てみたいと思います.

#include <stdio.h>
int main(){
	printf("YUKI.N>みえてる?\n");
	return 0;
	}

コンパイルしたあと,とりあえずgdbをいろいろしたいファイルを引数として走らせます.

halka@debian:~$ gdb ./nagato
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".

とりあえずrunでちゃんと走るか確認します.

(gdb) run
Starting program: /home/halka/nagato
YUKI.N>みえてる?

Program exited normally.

はい,みえてます.
みくるのほうが好きですけどね.

アセンブラで表示

アセンブラで見てみます.
どうやらみたい関数名を渡すみたいです.
コマンドはdisassemble [関数名]

(gdb) disassemble main

Dump of assembler code for function main:
0x08048354 : lea 0x4(%esp),%ecx
0x08048358 : and $0xfffffff0,%esp
0x0804835b : pushl 0xfffffffc(%ecx)
0x0804835e : push %ebp
0x0804835f : mov %esp,%ebp
0x08048361 : push %ecx
0x08048362 : sub $0x4,%esp
0x08048365 : movl $0x8048488,(%esp)
0x0804836c : call 0x804827c
0x08048371 : mov $0x0,%eax
0x08048376 : add $0x4,%esp
0x08048379 : pop %ecx
0x0804837a : pop %ebp
0x0804837b : lea 0xfffffffc(%ecx),%esp
0x0804837e : ret
End of assembler dump.

gdbを終了します

(gdb) q

ちゃんと見られてよかったです.高級言語のありがたみを感じますね.
 
参考
GDB
http://www002.upp.so-net.ne.jp/mamewo/gdb.html