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)を使用していました。
-
各種テストスイート・ケースは、より堅牢になるように更新されました。