0.4.6 (2015年6月30日)
新しい依存関係:
-
dtrace-utils-develが、インストールされているバージョンではなく、対応するバージョンのdtrace-utilsを常に取得するようになりました。[DTrace 0.3.0で導入されました。]
-
dtrace-modules 0.4.4でDTraceカーネル・ヘッダー・パッケージの名前がdtrace-modules-shared-headersに変更されました。dtrace-utilsでは、この名前が使用されています。
新規オプション:
-
dtrace -vVが、dtraceのリリース済バージョンに関する情報およびdtrace(1)とlibdtrace(1)の内部バージョン制御IDを報告するようになりました。(インストールで障害が発生していないかぎり、最後の2つは常に同じである必要があります。)
バグ修正:
-
通常の操作でSIGTRAPを受信するプロセスが、ustack()などにdtraceされているときでも動作するようになりました。以前は、SIGTRAPが無視されていました。[導入(意図的) DTrace 0.4.5では、このケースは0.4.0以降の別の方法で誤った動作が発生していました。]
-
DTraceでは、DTraceによる動的リンク・ステートの参照中に、exec()のプロセスのトラックを失う問題が修正されました。
-
DTraceがfork()edプロセスの中でブレークポイントを離れることはなくなり、プロセスから正しく分離してブレークポイントを削除するようになりました。
-
DTraceがモニターを停止してから所有したプロセスのシンボル表の状態を認識する問題が修正されました。
-
DTraceでdlopen() / dlclose()を実行するマルチスレッド・プロセスがクラッシュしなくなりました。[すべてDTrace 0.4.0で導入されました。]
ライブラリ・インタフェースの変更:
-
出荷されなかったSolarisに固有のヘッダーが存在しないため、<dtrace.h>のインクルードが失敗していました。このヘッダーはコールされなくなりました。
ユーザーから見える内部の変更:
-
DTraceが実行中のカーネルによって異なる名前のディレクトリからDライブラリを(トランスレータなどで)ロードするため、同じユーザー・スペース・パッケージで複数のカーネルをサポートできるようになりました。
既知の問題点:
-
最初のスレッド以外のスレッドでdlopen()を実行するu{stack,sym,addr,mod}()でマルチスレッド化されたプロセスには、このようなdlopen()によって導入されたシンボルの正確なシンボル解決ができない場合があります。