2.0.0-1.3 (2020年10月2日)

スタンドアロンのユーザー・スペース実装の3番目のエラータ。

これは、機能が制限されたプレリリースです。

新機能:

  • freopen()アクションが数値に対して実装されました。

  • system()アクションが数値に対して実装されました。

  • 2つの追加組込み変数(idおよびppid)が使用可能になりました。

  • DTrace逆アセンブラの注釈が読みやすくなりました。

バグ修正:

  • BEGINおよびENDプローブのセマンティクスが、文書化された動作に一致するように修正されました。BEGINは常に最初に実行されるプローブであり、ENDは常に最後に実行されるプローブです。また、exit()アクションが、BEGINプローブとENDプローブ、およびトレース・データ・コンシューマとの相互作用の点で修正されました。

  • デフォルトのアクションと非データの生成アクションの動作が修正されました。

  • 符号付きの分割および残余演算の実装は、BPFが命令を提供しないという点で修正されました。

  • 後置デクリメント式に生成されたコードが修正されました。

  • 理論的バッファ・オーバーフロー問題のバグ修正が、1.2バージョンのDTraceに同じコードが存在するため、このバージョンからマージされました。

内部変更:

  • 型キャストが、必要に応じてシフト演算のみを実行するように最適化されました。実装も改善され、追加のレジスタを必要としません。

コンパイルの修正:

  • procfs.d Dライブラリはsched.d Dライブラリに定義されているデータ型を使用しますが、sched.dへの明示的な依存関係がありませんでした。

  • yylineno変数が2箇所で宣言され、より新しいコンパイラと競合していました。プライマリ宣言は現在dt_lex.cにあり、dt_cc.cにこの変数のextern宣言があります。

  • 分散によって、アーキテクチャに固有のインクルード・ファイルが様々な場所に配置されます。ビルド・システムは有効であるように見える最初の場所を使用して、様々な既知の場所を試みます。

  • 一部のより新しいコンパイラが、mkoffsets.shによって生成されたソース・コード内のr_debug_offsetsおよびlink_map_offsets配列のconstを受け入れません。

  • コンパイル中にトリガーされたコンパイラの警告を解決するために、ソース・コードに様々な変更が適用されました。

テストスイートの変更:

  • 1.2バージョンのDTraceから、bogus-ioctl testsuiteトリガー実行可能ファイルに対するバグ修正がマージされました。これは、このバージョンで、open()ライブラリ関数の同じ不適切な使用が発生するためです。

  • 一部のテストスイート・スクリプトが、スレッド・ローカル変数(self->n)が必要な場所でローカル変数(this->n)を使用していました。

  • 各種テストスイート・ケースは、より堅牢になるように更新されました。