cgdb 文字化け
cgdbがとても便利なのですが、 CJKが通らないのでやっつけパッチを作りました。
文字化けの原因
cgdbの構造はざっくり以下のような感じです。
tty <---> ncurses <---> cgdb <---> ptmx/pts | <---> gdb | <---> readline
原因は2つほどあり、
- ビルド時の設定で、ワイド文字対応版でないncursesを使っている
- cgdbがgdbから出力を読み取り、ncursesに書き込むときの処理が8-bit cleanでない
パッチ
修正前
修正後
ソースコードの文字化けと、 gdbのrunの結果から、マルチバイト文字が消えてしまう問題がなおってます。
ビルド
ncursesw,bison,flex,readline,help2man,texinfo などが必要なので、aptやyumであらかじめインストールしておきます。
$ git clone git://github.com/i4fumi/cgdb.git $ cd cgdb $ git checkout -b topic/multi-byte-character origin/topic/multi-byte-character $ ./autogen.sh $ ./configure --prefix=/usr/local $ make $ sudo make install