著作一覧 |
(適宜改行を追加) read(13, "\0\1\0\271\0\0\4\210\5\310\0\5\0-@\31\3\221\0\22\1\3\3"..., 76) = 76 write(2, "ruby: ../../../src/share/native/"..., 219 ruby: ../../../src/share/native/sun/awt/font/fontmanager/fontobjects/fontObject.cpp:506: void fileFontObject::readBlock(size_t, size_t, char *): Assertion `(*__errno_location ()) == 0 && count == (size_t) size' failed.) = 219 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 getpid() = 29658 kill(29658, SIGABRT) = 0 --- SIGABRT (Aborted) @ 0 (0) --- +++ killed by SIGABRT +++SIGABRTですか……なぜ? 上のアサーションに関係してるんだろうか。
ジェズイットを見習え |
規格上assert()に失敗したらabort()することになってませんでしたっけ。<br><br>説明<br> abort() 関数は、 SIGABRTシグナルを捕獲(catch)されておりシグナル・ハンド<br> ラーが返って来ない場合を除いて、プログラムの異常終了を 引 き 起 こ す。<br> abort() 関数によってプログラムの終了が引き起こされたときには、すべての<br> 開いているストリームは閉じられフラッシュされる。<br><br> このSIGABRTの機能が禁止または無視に設定されている場合は、abort()関数 は<br> それを書き換える。
確かに。<br>困ったことに-fを付けてstraceを実行するとまた違う動作をするので、どうにもならなかったり。