スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

gdbを電卓として使う


天体の運動はいくらでも計算できるが、人の気持ちはとても計算できない
ニュートン


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マニュアル

コメント

非公開コメント

本のおすすめ

4873115655

4274065979

4822236862

4274068579

4822255131

B00SIM19YS


プロフィール

  • Author:proger
  • 組み込み関係で仕事してます

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。