May 26, 2012

gdb の意外に便利な使い方

開発環境には必ずインストールされている gdb (1) コマンド。
本来の機能はプログラムのシンボリックデバッガなのだが、 若干意外とも言える便利な使い方がある。

それはプログラマなら重宝する 16 進数電卓としての用法。

$ gdb -q
(gdb) p/x 10                     ← 10 を 16進数で表示
$1 = 0xa
(gdb) p/x 20                     ← 20 を 16進数で表示
$2 = 0x14
(gdb) p/x $1 + $2                ← 10 + 20 を 16進数で表示
$3 = 0x1e
(gdb) p $2 - $1 / 3              ← 20 - (10 / 3) を 10進数で表示
$4 = 17
(gdb) p ($2 - $1) / 3            ← (20 - 10) / 3 を 10進数で表示
$5 = 3
(gdb) q
    
例にある様に一度利用した値は変数 $n に保存されるので、 計算結果を後から参照するのも便利だし、 四則演算の優先順位もちゃんと解決してくれるので電卓としても結構使える。
ちなみに入力データは Unix/C の原則に従って、 0 が先行する値は 8 進数、 0x が先行する値は 16 進数として認識される。
ちょっとした便利機能の紹介でした。

Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.