awkでセグメンテーション障害

テスト機でawkをちょいちょいいじっていたらセグメンテーション障害が起きた。

./read_batlog.sh[4]: 737386 セグメンテーション障害(coredump)

何度か試してみたところawkの中で「.*」を使うと起こるようだ。

  • 「.」一つだと起こらないんだけど「.*」「.+」だと起こる
  • 「A+」とか「A*」なら起らない。
  • 「.*」とかのときだけ起こる

なんじゃこりゃ〜ってことで調べたらセグメント障害ってのはこんなものらしい

Segmentation Fault (core dump) は (1) プログラムの不具合 (2) 未対応のプラットフォームの使用による問題 (3) メモリ領域の破損 などの理由によって何らかのシグナルを受けた場合に発生し得ます。
結局のところ原因を探るためにはデバッグが必要なわけで、そのためには少なくとも、configure オプション、環境変数、使用したコンパイラアセンブラ・リンカー (種類とバージョン)、core ファイルからgdb などを利用して取得したバックトレースなどが補足されない限り有効な回答を得にくいと思います。

AIX 5.3L + bind 9.4.2 でのセグメンテーション障害 − Linux Square − @IT

つまりオーバーフローでもしてるってことかな?
とりあえず出てくる文字を文字クラスに指定してみたらうまくいった。

/^Pentasa[ 0-9,:-]+/

OSの内部を知らないとこういうのが起きた時に対処が暫定的でかっこわるいなぁ(T-T)