2.0.0-1.10 (2022年4月26日)

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

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

新機能:

  • trace()アクションは、配列、構造体、および共用体の値をサポートします。

  • execname組込み変数が実装されました。

  • inet_ntoa()サブルーチンが実装されました。

  • progenyof()サブルーチンが実装されました。

  • getmajor()およびgetminor()サブルーチンが実装されました。

  • mutex_owned()、mutex_owner()、mutex_type_adaptive()、mutex_type_spin()、rw_read_held()、rw_write_held()およびrw_iswriter()が実装されました。

  • alloca()およびbcopy()サブルーチンが実装されました。

  • 連想配列が実装されました。これらはグローバル変数とTLS変数の両方でサポートされています。

  • 連想配列、レジスタ・スピル、および文字列定数に対して逆アセンブラ注釈が追加されました。

  • トランスレータは、カーネル・シリーズ5.16までをサポートするように更新されました。

  • 障害は、障害が報告されるPC (プログラム・カウンタ)を報告するようになります。

バグ修正:

  • レジスタ割当てリークが修正されました。

  • 同じポインタが複数回チェックされないように、NULLポインタ検証が最適化されました。

  • 3項条件でのNULLポインタ処理がサポートされるようになりました。

  • 整数へのポインタのキャストが修正されました。

  • 符号付き条件の負の値(即時)が正しく出力されるようになりました。

  • TLS変数の逆アセンブラ注釈が修正されました。

  • DIFO strtabの処理が、複数のバグを修正するために再処理されました。

内部変更:

  • strlen()サブルーチンが、bpf_probe_read_str() BPFヘルパーを使用して実装されるようになりました。

  • 文字列が、長さの接頭辞を使用して格納されなくなりました。

  • Cまたはアセンブリ・コードに実装されているBPF関数が、DTraceソース・コードに静的に一覧表示されなくなりました。これらの存在は、dlibsがロードされるときに実行時に決定されます。

  • すべてのロード時間定数が、再配置メカニズムによって処理されるようになりました。

  • 開発者は、新しい関数dt_dis_insn()を使用して、単一の命令を逆アセンブルできます。

  • 事前算術と事後算術の実装が最適化されました。

  • 即時加算命令の再配置サポートが追加されました。

  • substr()サブルーチンはレジスタ圧を低減するために最適化されました。

テストスイートの変更:

  • 新機能の実装に対応し、いくつかのバグ修正を考慮して、様々なテストがXFAILからPASSステータスに移動されました。

  • 様々なテストが改善されました。