gdbと言えば、gccやemacs等と並んでLinux上での開発環境の定番でしょう。
gdbは非常に強力なデバッガですが、今回はデバッガというよりは電卓としてgdbを紹介します。
皆さんちょっとした計算をしたいときに、どんな電卓(計算)ソフトを使われているでしょうか?
Windowsならアクセサリの電卓、Linuxではxcalc、bcあたりが多いでしょうか?
私は大抵コマンドラインのgdbです。
使い方はgdbをコマンドラインで立ち上げて、あとはprintコマンドに続けて計算式を入力するだけです。
例えば、128 * 256なら
(gdb) p 128 * 256 [enter]
$1 = 32768
とbcのようにコマンドラインで使えます。
16進表示したければ、
(gdb) p/x 128 * 256 [enter]
$2 = 0x8000
となります。入力式も16進が使えるので、
(gdb) p/x 0xffff + 3
$3 = 0x10002
なんてこともできます。
その他、カーソル上やCtrl+Pでヒストリが使えたり、
次のようにして、計算結果を再利用できたりします。
(gdb) p/x $2 + $3
$4 = 0x18002
以上の機能だけでも結構使いやすいのですが、
なんといっても他の電卓にはない便利な機能は「型」を指定できる点です。
例えば、次の例を見てください。
(gdb) p 0 - 1
$1 = -1
(gdb) p (unsigned int)0 - 1
$2 = 4294967295
(gdb) p 100 / 3
$3 = 33
(gdb) p 100.0 / 3
$4 = 33.333333333333329
(gdb) p (int)((char)0xff)
$5 = 0xffffffff
このように、型指定が計算結果にどう影響するかがインタラクティブに確認できます。
デバッグ中の式の確認なんかには非常に重宝する機能ですし、プログラミングの初心者の方にとっても、型やbit幅について教えるにも非常に良いツールだと思います。
Windows上で開発されている方も、cygwin+gdbで一度試されてみてはいかがでしょうか。
【関連書籍】
・GDBハンドブック アーノルド・ロビンス 千住治郎 オライリージャパン
・GDBデバッギング入門 リチャード・ストールマン ローランド・ペシュ
・ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 青木 峰郎
・新版 明解C言語 入門編 柴田望洋
【関連リンク】
・GDBマニュアル
gdbは非常に強力なデバッガですが、今回はデバッガというよりは電卓としてgdbを紹介します。
皆さんちょっとした計算をしたいときに、どんな電卓(計算)ソフトを使われているでしょうか?
Windowsならアクセサリの電卓、Linuxではxcalc、bcあたりが多いでしょうか?
私は大抵コマンドラインのgdbです。
使い方はgdbをコマンドラインで立ち上げて、あとはprintコマンドに続けて計算式を入力するだけです。
例えば、128 * 256なら
(gdb) p 128 * 256 [enter]
$1 = 32768
とbcのようにコマンドラインで使えます。
16進表示したければ、
(gdb) p/x 128 * 256 [enter]
$2 = 0x8000
となります。入力式も16進が使えるので、
(gdb) p/x 0xffff + 3
$3 = 0x10002
なんてこともできます。
その他、カーソル上やCtrl+Pでヒストリが使えたり、
次のようにして、計算結果を再利用できたりします。
(gdb) p/x $2 + $3
$4 = 0x18002
以上の機能だけでも結構使いやすいのですが、
なんといっても他の電卓にはない便利な機能は「型」を指定できる点です。
例えば、次の例を見てください。
(gdb) p 0 - 1
$1 = -1
(gdb) p (unsigned int)0 - 1
$2 = 4294967295
(gdb) p 100 / 3
$3 = 33
(gdb) p 100.0 / 3
$4 = 33.333333333333329
(gdb) p (int)((char)0xff)
$5 = 0xffffffff
このように、型指定が計算結果にどう影響するかがインタラクティブに確認できます。
デバッグ中の式の確認なんかには非常に重宝する機能ですし、プログラミングの初心者の方にとっても、型やbit幅について教えるにも非常に良いツールだと思います。
Windows上で開発されている方も、cygwin+gdbで一度試されてみてはいかがでしょうか。
【関連書籍】
・GDBハンドブック アーノルド・ロビンス 千住治郎 オライリージャパン
・GDBデバッギング入門 リチャード・ストールマン ローランド・ペシュ
・ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 青木 峰郎
・新版 明解C言語 入門編 柴田望洋
【関連リンク】
・GDBマニュアル
| ホーム |










