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ステータスに移動されました。
-
様々なテストが改善されました。