今日、私は油断したgdb
:
Program exited with code 0146.
gdb
戻りコードを8進数で出力します。私が見つけた理由を調べます:http :
//comments.gmane.org/gmane.comp.gdb.devel/30363
しかし、それは特に満足のいく答えではありません。一部のグーグル検索では履歴が明らかにされなかったため、SOの誰かが裏話を知っていることを望んでいました。
やや関連する質問ですが、リターンコードを8進数で表示するにはどうすればよいでしょうか。おそらく古いマシンは常に戻りコードを出力しましたか?
$ printf %o\\n $?
かなり厄介です:)
man ascii
8進数を10進数に変換しても意味がありません。bc
より良い選択でしょう。
$?
は、戻りコードのシェルの値で、10進数です(またはgdbは、例のコマンドもサポートしていますか?)。gdbがそれを8進数で報告する理由がわかりません。私の解決策はman ascii
、8進数の値が何を意味するかを確認するために 'ol を取り出します。他のプログラムからも8進数値に遭遇するので、興味深い質問です。たぶん、それはカーニハンとパイクの「Unixプログラミング環境」で議論されています。幸運を。