2.9.2 演習: システム・コール・エラーの詳細情報の表示

失敗したシステム・コールのエラー番号ではなくエラー名が表示されるようにerrno.dを変更してください。

  • エラー(EACCESEEXISTなど)の数値は、/usr/include/asm-generic/errno-base.hおよび/usr/include/asm-generic/errno.hに定義されています。 DTraceは、/usr/lib64/dtrace/kernel-version/errno.dの数値エラー値のインライン名(事実上定数)を定義します。 error[]という連想配列を使用して、/usr/include/asm-generic/errno-base.hに定義されているエラー名とインライン名のマッピングを格納します。

  • printf()を使用して、ユーザーID、プロセスID、プログラム名、エラー名およびシステム・コールの名前を表示します。

  • BEGINプローブを使用して、列見出しを出力します。

  • arg0ではなくerrnoの値を使用して、マップされた名前の範囲からのエラーがシステム・コールで発生したかどうかをテストします。

(予想完了時間: 30分)