« Bluefish 関連ページ 復活 | トップページ | 春日井マラソン 2026 »

2026年1月 4日 (日)

minicom の右枠線がズレる問題へのパッチと gdb の話

minicom の全角対応

先に Before & After のスクリーンショットを出してしまうと、こんな感じ。

Beforeandafterpatchtominicom_2101

関連する問題は、Debian Bug では、#821936 として報告されている。 [i18n] minicom does not live well with multicol characters
情報提供として、送っておいたがかなり前のバグなので、パッチが取り込まれるかどうか。

パッチの方針は、主に src/window.c の中での gmap の取り扱いをなんとかすることで、全角文字については1つおきに使うようにするもの。

実のところ、このヘルプウィンドウが閉じたあとの、全角文字書き戻しに問題が残っている。上のスクリーンショットでいうと、画面左側にある CTRL A Zを押す の次の全角文字が元に戻らない。

Gdb の話

パッチの作成にあたって、というより、その前提となる現状の動作確認において、 gdb に助けられた。

  • 知ってはいたものの今回始めて使った機能に、既存プロセスへのアタッチがある。
    • gdb と minicom を別ターミナルで動かしたいので、 gdb minicom という起動方法は使えない。
    • minicom を先に起動しておき、 gdb -p `pgrep minicom` とするのが楽。
      • 今回は、それで間に合う箇所の動きが知りたかったため、大丈夫だった。
      • 先にメッセージがつらつら〜と出てしまう部分の動作を追跡するには、また何か考える必要があるだろう。単純に run すればいいのか?

gdb が強力だとはよく聞いていたし、過去にオライリーの本も買っているはずだが、久しく使っていなかった。復習も兼ねて、よく使ったコマンドの羅列。

  • print 変数名[,変数名] で、変数の内容表示。複数の変数も一度に表示できる。
  • b ソースファイル名:行番号 でブレイクポイント設定
  • b 関数名 でも関数入り口にブレイクポイントを設定できる。いちいちファイルのどこに書いてあるのかを確認する必要がなくて便利。
  • watch 変数名 で、ウォッチポイント(変数の内容変化監視)設定
  • i b でブレイクポイントの一覧表示
  • d 単独で、ブレイクポイント、ウォッチポイントなど、一括削除。確認プロンプトあり。
  • list で、現在地周辺のソースコード表示。前後各5行くらいか。

おまけ

  • 単に Enter キーを叩くと、直前のコマンドを繰り返す。 step とか next とか。
  • s (step), n (next) は、回数指定ができる。 s 7 とか。
    • 使う場面: 文字列に文字が追加されるのを見ている時、あらかじめ文字数がわかっていて、文末の挙動まですっ飛ばしたいとか。
    • cont にも使えると便利だと思うが、だめだった。

 

« Bluefish 関連ページ 復活 | トップページ | 春日井マラソン 2026 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« Bluefish 関連ページ 復活 | トップページ | 春日井マラソン 2026 »

2026年5月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
無料ブログはココログ