0.4.1 (2013年11月6日)

カーネル・リリース:

3.8.13-16.2.1.el6uek

新機能:

  • DTraceが必要に応じてdtrace.koに対して自動的にmodprobeを実行し、modprobeがシステムで見つからない場合はyum installされるようになりました。プロバイダ・モジュールには自動的にmodprobeが実行されませんが、(たとえば) dtrace -lを実行すると、モジュールがシステムに存在することを確認して、modprobeを実行できます。

  • ユーザー・スペース・プロセスのコンテキスト内で一意のプロバイダ名を保持することができなくなりました。つまり、メイン実行可能ファイルとロード済共有ライブラリ、または2つのロード済共有ライブラリでは、同じプロバイダ名をDOFセクションに一覧表示することができません。

  • 新しい循環実装がUEK3カーネルに含まれ、よりエラー発生しやすい以前のバージョンが置き換えられました。新しい実装を使用するようにモジュール・コードが更新されました。

  • 新しい開発ツールshowUSDT (DOFセクションのダンプ用)およびctf_module_dump (カーネル・モジュール内のCTFのダンプ用)。(以前のツールは例のみであり、ドキュメントのディレクトリにインストールされます。)

バグ修正:

  • Dスクリプトに8192文字の間隔でプラグマまたはコメントが含まれている場合に擬似エラーが発生する原因となっていたレクサー・バグが修正され、16KiBより大きいスクリプトの使用が完全に阻止されました。[元のLinuxポートで導入]

  • 様々なメモリー・リークおよび初期化されていないメモリー読取りが固定されます。

  • 通常のSIGINTでdtraceが途中で中断された場合に、プロセスでブレークポイントが未処理のままになる可能性があるバグが修正されます。[DTrace 0.4.0で導入されました。]

  • .SUNW_dofセクションの可視性がよくありませんでした。[DTrace 0.4.0で導入されました。]

  • デバイスにパーティションがない場合のdevinfo_tのdev_statnameおよびdev_pathnameを修正します。[DTrace 0.4.0で導入されました。]

  • DOFを含むプログラムおよび共有ライブラリにコンストラクタを提供するdrti.oは、DTraceが実行されていないときのオーバーヘッドが低くなり、エラーを標準エラーではなく標準出力に出力し、O_CLOEXECでファイルを開くようになりました。[DTrace 0.4.0で導入されました。]

  • 元のコードから継承されたロック順序の問題が修正されます。

  • ユーザー・スペース・スタック・メモリーのアクセスが安全な方法で実行されるようになりました。

  • 投機トレース・バッファ・クリーニングとコンシューマ状態の破棄の間の競合状況が解決されました。

  • コンシューマ状態に関連するメモリー・リークが修正されました。

  • プロバイダ参照カウンタ計算の問題が解決されました。

  • errno D変数が、syscall:::returnプローブ・アクションの実行中に正しい値を保持するようになりました。つまり、システム・コールがエラーなしで完了した場合は0、システム・コールが失敗した場合は有効なエラー・コードが保持されます。