IBM® Rational® PurifyPlus™ for Windows リリース ノート v7.0.0.0-007

暫定修正 007 ビルド 6805

最終更新日: 2008/2/6


© Copyright IBM Corporation. 1992, 2008. All Rights Reserved.
© Copyright IBM Japan 2007

IBM Corporation の文書による事前の同意を得ることなく本著作物を複製しまたは配布することは、禁じられています。

ご注意


範囲

これは暫定修正です

この資料で説明されている製品の変更内容は、Rational PurifyPlus for Windows のバージョン 7.0.0.0 に適用されます。この暫定修正は、7.0.0.0 以前のバージョンに適用しないでください。バージョン 7.0.0.0 用の以前の暫定修正の上に適用することができます。

PurifyPlus のコンポーネントには以下が含まれます。

このリリース ノートでの「PurifyPlus」に関する記述は、Purify、Quantify、PureCoverage のすべてに該当します。

目次

この暫定修正の内容
インストールの情報
インストールの問題
IBM Rational ソフトウェア サポートへの問い合わせ

この暫定修正の内容

この暫定修正は、Rational PurifyPlus for Windows のバージョン 7.0.0.0 の障害を解決することを目的としています。下の表は、7.0.0.0 のリリース以降に解決された問題を説明しています。これらは累積暫定修正であるため、各修正が配布された暫定修正を識別できるようになっています。現在の暫定修正で初めて配布された修正は、灰色で強調表示されています。

さらに、PurifyPlus では、以下のプラットフォームおよびコンパイラがサポートされるようになりました。

この暫定修正には、PureCoverage の .txt ファイルの html 出力を生成できる、新規のツールが含まれています。 これは、PurifyPlus インストール ディレクトリ内の新規ディレクトリ CovHtml に収められています。 この新規ディレクトリにある purecovweb_readme.txt ファイルを、最初にお読みください。

この暫定修正では、Purify のデフォルト フィルタが新たにいくつか追加されています。さらに、これらのフィルタに変更を加えた場合に、既存のデフォルト フィルタへ簡単に取り込めるメカニズムが搭載されています。 詳しくは、「インストールの問題」に記載されている説明を参照してください。

PurifyPlus を使用して、Vista 上で ASP.NET アプリケーションをプロファイルするには、「Windows Vista での ASP.NET プロファイルの作成」の構成情報を参照してください。

解決済みの問題
製品
障害番号
APAR
説明
配布された暫定修正
Purify RATLC00148368 PK41798 障害: v7.0 iFix003 で不正確な MLK の番号がレポートされる 005 (ビルド 6615)
Purify RATLC00384951 - Purify フィルタで、関数名とソース ファイルにワイルドカードが許可される 003 (ビルド 6427)
PureCoverage RATLC00382215 - PureCoverage 用の HTML レポートが必要となる 007 (ビルド 6805)
Purify RATLC00385065 - インストゥルメント DB2 アプリケーションを実行できない 001 (ビルド 6311)
Purify RATLC00386069 PK19945 SI が Pure アクセス例外で失敗する 003 (ビルド 6427)
Purify RATLC00386102 PK20058 Purify の GetFileVersionInfoSize への呼び出しが失敗する 003 (ビルド 6427)
Purify RATLC00386502
--
ソース編集用に VS 2005 を使用するよう Purify を使用可能にする / Purify が正しいデバッガを起動しないこともある 005 (ビルド 6615)
Purify RATLC00386688 - Purify で一部の無効な FMM が表示される。これらがレポートされないよう、検査を厳しくする必要がある 001 (ビルド 6311)
Purify RATLC00386891 - Windows 2000 SP4 上で一部のテストを実行すると、Pure アクセス例外メッセージが表示される 003 (ビルド 6427)
Purify RATLC00386930 PK33779 Purify で、一部の .pfy ファイルと .txt ファイルの呼び出しスタックの上部に ??? が表示される 003 (ビルド 6427)
Purify、Quantify、PureCoverage RATLC00386964 IC49099 [Modules Property] ウィンドウでインストゥルメント名が削除される 001 (ビルド 6311)
Purify RATLC00387131 IC49210 モジュール/ソース ファイル名が短すぎて表示できない 003 (ビルド 6427)
Purify RATLC00387228 - 回帰: ソース コード エディタを切り替えると、Purify がソース ファイルを起動しなくなる 003 (ビルド 6427)
Purify RATLC00387239 IC49296 ユーザー コードの例外処理後に Pure メッセージが表示される 001 (ビルド 6311)
Purify RATLC00387648 - OOPS メッセージ [O] Pure: _x_TrackHeapSpace: No ranges tracked for heap with SI 003 (ビルド 6427)
Purify RATLC00387667 PK27314 アプリケーションが例外をスローすると Purify が終了する 003 (ビルド 6427)
Purify RATLC00387789 PK28215 デバッグ realloc()n 呼び出し時に MAF 003 (ビルド 6427)
Purify RATLC00387834 - アロケータ内で呼び出される printf() ファミリー ラッパーで不正確な PAR と EXI が生成される 003 (ビルド 6427)
PureCoverage RATLC00387855 PK28700 アプリケーション サーバーの再始動時に PureCoverage が「heap allocation failed」と報告する 003 (ビルド 6427)
Purify、Quantify、PureCoverage RATLC00387903 IC50097 Quantify テストを実行すると、0xcdcdcdcd でメモリ読み取り例外が発生する 003 (ビルド 6427)
Purify RATLC00388063 PK29475 コード w/ 手書きアセンブリで Purify を実行すると、トラップ ビットが生成される 003 (ビルド 6427)
Quantify RATLC00388141 PK29729 Quantify - システム エラー コード: Not enough storage available to process command 003 (ビルド 6427)
Purify RATLC00388626 PK31212 フォーマット文字列と一致するパラメータが足りないため (0x13f098)、アプリケーションが終了する。 003 (ビルド 6427)
Purify RATLC00388859 IC50654 巨大な PFY ファイルを下端までスクロールできない。 003 (ビルド 6427)
PureCoverage RATLC00388952 PK32184 PureCoverage が、Windows のネイティブ コード dll 上の参照エラーに直接パッチを適用できない。 003 (ビルド 6427)
Purify RATLC00389282 PK33119 LoadLibrary に NULL を渡すことによって、PureQRT.dll でアクセス例外が発生する。 003 (ビルド 6427)
Purify RATLC00389312 PK33231 メッセージ: Assertion failed: pHead->nBlockUse == nBlockUse 005 (ビルド 6615)
Purify RATLC00389364 IC50894 Purify アプリケーションの実行時に予期しないブレークポイント例外が発生する。 003 (ビルド 6427)
Purify RATLC00389365 - スタートアップ時に、ヒープ トラッキングが初期化される前にディスカバーされたヒープ ブロックに正しくマークを付ける。 003 (ビルド 6427)
Purify RATLC00389495 - 別のシステム/ディレクトリ構造で作成された .pfy ファイルに対するフィルタを処理しているときに Purify がクラッシュする。 003 (ビルド 6427)
Purify、Quantify、PureCoverage RATLC00389561 - PUT の終了後に、PurifyPlus サーバーがデッドロックする。 003 (ビルド 6427)
Purify RATLC00389651 PK34521 PAR メッセージで Purify の 2 バイト「-」(日本語) が「?」に文字化けする 005 (ビルド 6615)
Purify RATLC00389754 PK35077 VS 2005 でコンパイルされたプログラムで、Purify の結果が pfy ファイルとして保存されない。 003 (ビルド 6427)
Quantify RATLC00389758 PK35124 Quantify: EH_prolog を除外する必要がある 005 (ビルド 6615)
Purify RATLC00389886 IC51313 Purify: WideCharToMultiByte パラメータの PAR メッセージが誤っている 007 (ビルド 6805)
Quantify、PureCoverage RATLC00389970 - Coverage と Quantify が、デフォルトで WinSxS ディレクトリ内のモジュールを除外しない。 003 (ビルド 6427)
Purify RATLC00390137
--
[Purify フィルタ マネージャ] ウィンドウをサイズ変更できない。 005 (ビルド 6615)
Purify RATLC00390506 PK38604 Purify が GlobalReAlloc 関数でアサーション失敗メッセージを報告する 005 (ビルド 6615)
Purify RATLC00390721 PK39367 リーク スキャンの実行時、または [新規リーク スキャン (new leak scan)] ボタンの使用時に、アプリケーションの CPU 使用率が 100% になる。 007 (ビルド 6805)
Purify RATLC00391072 PK40440 インストゥルメント アプリケーションの実行後に、Purify がライブ チャンク内で検出したトラップ ビットについて警告する。 005 (ビルド 6615)
Purify RATLC00391274 PK41302 Purify 印刷プレビュー機能を実行すると、UI クラッシュが発生する 005 (ビルド 6615)
Purify RATLC00392428 PK45080 VS 2005 でビルドされたアプリケーションを使用して、Purify が大量の ABR (配列の境界を越えた読み取り) を報告する 005 (ビルド 6615)
Purify RATLC00396069 PK54147 64 ビット ライブラリに対して fstat() 呼び出しを行うと、Purify エンジンがクラッシュする。 007 (ビルド 6805)
Purify、Quantify、PureCoverage RATLC00396543 PK55468 オンライン ヘルプ: 'cache directory needs to be on the PATH' 文が、Visual C++ システム サービスのプロファイルで見つからない。 007 (ビルド 6805)
Purify RATLC00397380 PK57788 Purify が原因で、IPR と NPW が順番に発生する 007 (ビルド 6805)
Purify RATLC00494392 PK30422 エラー「Insufficient RVA」 003 (ビルド 6427)
Purify RATLC00495565 PK31180 DLL を「最小」でインストゥルメントしない限り、Purify プログラムが存在する 003 (ビルド 6427)
Purify RATLC00496242 IC50603 STL ヘッダーの警告「Uninitialized memory read..」
この修正の適用方法の詳細は、「デフォルトのフィルタ」を参照してください。
003 (ビルド 6427)
Purify RATLC00506437 PK36519 インストゥルメンテーション中に Purify アプリケーションがクラッシュし、圧縮ブロックのスペースを割り振ることができないと報告される 003 (ビルド 6427)
Purify RATLC00506749 IC51458 マルチスレッド アプリケーションの MLK が不正確 005 (ビルド 6615)
Purify RATLC00507370 PK37138 データ セクションに保管されているポインタについてメモリ リークを誤って報告する 005 (ビルド 6615)
Purify RATLC00768035 IC48229 後続の実行時に、Purify アプリケーションが dependency ライブラリをロードするのに時間がかかる 003 (ビルド 6427)
Purify RATLC00769255 PK17810 Purify において、インストゥルメント アプリケーションがエラー 0x80080005 で失敗する 007 (ビルド 6805)
Purify RATLC00771530 PK19185 Purify が MPK エラーをフィルタリングできない 003 (ビルド 6427)
Purify、Quantify、PureCoverage RATLC00772099 PK19549 一部のウィルス スキャナ機能との対話で、dll was not found エラーが表示される 001 (ビルド 6311)
Purify RATLC00990717 PK26678 選択インストゥルメンテーションで Purify がメモリ リークを検出しない 003 (ビルド 6427)
Purify RATLC00991627 PK27358 選択インストゥルメンテーションで Purify アプリケーションが即時に終了する 003 (ビルド 6427)
Purify、Quantify、PureCoverage RATLC00998824 PK31862 管理コード上で SI を試行する場合にクリア メッセージが必要 005 (ビルド 6615)
Purify RATLC01003184 IC51020 HeapValidation ウィンドウでヘルプ リンクが欠落している 005 (ビルド 6615)
Purify RATLC01021216 PK44126 Purify で予期しないメモリ リークが表示される 007 (ビルド 6805)
Purify、Quantify、PureCoverage RATLC01023524 PK45415 Purify レポートが作業ディレクトリから xerces-c_2_6_0D.dll を開くことができない 005 (ビルド 6615)
Purify RATLC01026295 PK47592 メモリ リーク要約の生成後に、Purify がショート スタックを報告する。 007 (ビルド 6805)
Purify RATLC01028951 PK49073 [新規リーク] ボタンを押すと、Purify がハングする 007 (ビルド 6805)
Purify RATLC01035959 PK52785 Purify からロードしたスナップイン アプリケーションを閉じると、MMC コンソールで問題が発生する 007 (ビルド 6805)
Purify RATLC01038259 PK54170 WideChartoMultByte を Purify で実行すると、ATL コードで失敗する 007 (ビルド 6805)
Purify RATLC01100509 IC47535 文書内で /run=no を使用して、コマンド行オプションのスコープを明確にする 003 (ビルド 6427)
Purify RATLC01104752 PK16573 メモリ リーク要約の生成後に、Purify がショート スタックを報告する。 003 (ビルド 6427)
Purify RATLC01108513 IC48083 インストゥルメンテーション中に Purify が「reloc segment not big enough」と報告する 003 (ビルド 6427)
Purify RATLC01109789 IC47866 スレッド同期が原因となって、Purify で問題が発生する 007 (ビルド 6805)
Purify RATLC01185488 PK30212 Purify で「Address xxx points into a committed VirtualAlloc'd block」と表示される 005 (ビルド 6615)
Quantify RATLC01188107 PK42424 バージョン 2003.06.13 の Quantify で生成された *qfy* ファイルが、Quantify バージョン 7.0.0.0 で表示されない 007 (ビルド 6805)
Purify RATLC01190906 PK27563 [実行] ダイアログの [Command-line arguments] フィールドに右中括弧 } を使用すると、Purify GUI で問題が発生する 005 (ビルド 6615)
Purify RATLC01192495 PK36718 コマンド行で /SaveTextData を使用しても、インストゥルメンテーション中に Purify GUI が起動する 005 (ビルド 6615)
Quantify RATLC01193214 PK42985 マルチプロセッサ マシンでテストを実行すると、予期しない結果が発生する 005 (ビルド 6615)
Quantify RATLC01194246 PK51268 Logitech のマウス ドライバ ((lgscroll.dll)) がインストールされると、Quantify で実行したアプリケーションが予期せず終了する 007 (ビルド 6805)
Quantify RATLC01197959 PK41359 Quantify インストゥルメンテーションが malloc エラーで失敗する 005 (ビルド 6615)
Purify RATLC01198505 IC52216 実行をキャンセルすると、Purifyw.exe がクラッシュする場合がある 005 (ビルド 6615)
Purify RATLC01199757 PK42783 Purify *.* フィルタリングのバグ 005 (ビルド 6615)
Purify RATLC01201638 IC52556 VS2005 でビルドされた DLL のインストゥルメンテーション中に Purify が MSVCR80.dll を検出できない 005 (ビルド 6615)
Purify RATLC01202019 PK44540 非管理コードが管理コードをロードすると、Purify で実行したアプリケーションがすぐに終了してしまう 007 (ビルド 6805)
Purify RATLC01203221 PK45475 GUI 関数呼び出し時に Quantify アプリケーションがクラッシュする 005 (ビルド 6615)
Purify RATLC01204079 PK46259 Purify が、OpenGL アプリケーションの VirtualFree で不審な PAR を報告する 005 (ビルド 6615)
Purify RATLC01204913 PK47128 CreateProcess 呼び出しで Purify アプリケーションがハングする 005 (ビルド 6615)
Purify RATLC01206939 PK48844 アプリケーション初期化ステージで Purify が終了する 005 (ビルド 6615)
Purify RATLC01208159 PK49819 Purify が、SetDIBitsToDevice() で誤った ABR を報告する 007 (ビルド 6805)
PureCoverage RATLC01208172 PK49829 PureCoveraged アプリケーションが、コード 0xc0000005 ですぐに終了してしまう 007 (ビルド 6805)
Purify RATLC01210571 IC53584 Purify で実行されたアプリケーションがクラッシュし、IPR 警告と EXU 警告が表示される 007 (ビルド 6805)
Purify、Quantify、PureCoverage RATLC01212164 PK53027 PurifyPlus で推奨される Visual Studio .net 用の設定に、最適化の無効に関する項目がない 007 (ビルド 6805)
Purify RATLC01214595 PK54903 Purify で、Windows DLL のインストゥルメンテーション エラーが報告される 007 (ビルド 6805)
Purify RATLC01215397 PK55604 Purify が「Pure: Access Exception after HeapCompact call」を報告する 007 (ビルド 6805)
Quantify RATLC01353056 IC54853 Intel 数学ライブラリ (libmmt.lib) にリンクしているインストゥルメント アプリケーションを実行すると、未処理の例外が発生する 007 (ビルド 6805)

インストールの情報

この暫定修正は、Rational¥common および Rational¥PurifyPlus ディレクトリ内のファイルで構成されています。

これらのファイルをインストールするには、以下のようにします。

これでインストールが完了します。PurifyPlus の各コンポーネントの [ヘルプ] -> [バージョン情報] ボックスに、バージョン番号 7.0.0.0-007 とビルド番号 6805 が表示されます。システムをリブートする必要はありません。

インストールの問題

デフォルトのフィルタ

この暫定修正のフィルタ ファイル PurifyW_exe.pft には、Purify に追加できるデフォルトのエラー データのフィルタが含まれています。 これらのフィルタを利用するには、このファイルから既存のデフォルト フィルタ ファイルに新しいフィルタをコピーするか、またはフィルタ ファイルをすべて置き換えてください。

既存のデフォルト フィルタ ファイルを変更していない場合は、新しいフィルタ ファイルが使用されるようにしてください。これを行なうには、以下のようにします。

デフォルト フィルタ ファイルに対して行なった変更を保持する場合は、以下のようにして、追加のデフォルト フィルタを既存のファイルにコピーできます。

Vista でのインストールと実行

Vista の強固なセキュリティ検査の影響で、PurifyPlus のインストールおよび実行時に、さまざまなタイプのメッセージが表示されます。ここでは、そのうちのいくつかを紹介するとともに、インストールを簡単に行えるよう変更しておいたほうがよい UAC 設定について説明します。 保護されたディレクトリである「Program Files」下のロケーションで作業を行うことになるため、インストールを実行するには管理者権限で行ってください。

この暫定修正をインストールする前に、PurifyPlus 7.0 を Vista にインストールしておく必要があります。 「参照がサーバーから返されました」などのメッセージが表示された場合は、ユーザー アカウント制御設定の [署名され検証された実行ファイルのみを昇格する] を [無効] にして、インストールを許可します。

この暫定修正の解凍時に、「この Purifyplus フォルダをコピーするには管理者権限が必要です (You'll need to provide administrator permission to copy this folder Purifyplus)」というメッセージが表示されることがあります。 ユーザー アカウント制御設定の「管理者承認モードですべての管理者を実行する」を「無効」にして、zip ファイルの解凍を行えるようにします。

PurifyPlus をインストールして初めて実行する際に、「プログラム構成を保管する書き込み可能ディレクトリの指定」に関する各種メッセージが UAC から出されるか、またはレジストリ キーへのアクセスに関するエラーが表示されることがあります。 これは、ユーザーとして初めてプログラムを実行する際に発生し、Vista では一般的に起こります。同様のことは、Purify、Quantify、PureCoverage、PurifyMD などでも起こります。

Windows Vista での ASP.NET プロファイルの作成

ASP.NET 3.0 プラットフォーム (IIS 7.0 を使用) でのワーカー プロセスの実装およびリサイクル方法は、大幅に変更されました。 その結果、AspNetMon ユーティリティでは、現在のところ ASP.NET 3.0 以上をサポートしていません。Windows Vista マシンで ASP.NET コンポーネントをプロファイルするには、IIS を再構成してプロファイルを有効にする必要があります。 ASP.NET のプロファイルを有効にするには、2 つの方法があります。

  1. プロファイル専用のユーザー コンテキストを作成する
  2. オペレーティング システム全体で、グローバルに使用可能にする。
2 つの方法については、後で詳しく説明します。最初に、前提条件について説明します。
  1. ASP.NET Web サーバー (IIS) をホスティングするコンピュータに、PurifyPlus を適切にインストールする必要があります。リモートによるプロファイルは、一切行えません。
  2. 32 ビットのオペレーティング システムのみサポートしています。32 ビットの ASP.NET コンポーネントを 64 ビットのオペレーティング システムでホスティングする方法は、現在のところサポートされていません。
  3. ASP.NET コンポーネントをホスティングするように、IIS を構成してください。IIS を構成する手順については、本書では扱っていません。
Dot Net プロファイルでは、Dot Net アプリケーションをホスティングするプロセスの特定の環境変数を定義することによって、有効/無効を切り替えます。Dot Net 実行エンジン (MsCorEE.DLL) をロードして初期化する前に、これらの変数を定義しておくことが大切です。ASP.NET の場合のホスティング プロセスは、通常 W3WP.EXE です。必要な環境変数は、以下のとおりです。
専用のユーザー コンテキストでプロファイルを有効にする方法
このアプローチを利用するには、最初にユーザー アカウントを作成します。このアカウントは、プロファイルするワーカー プロセスのホスティング専用に使います。コンピュータ管理コンソール (compmgmt) を使用して、新規ユーザーをシステムに追加します。このユーザーを「プロファイラ」と呼びます。ユーザー名とパスワードは忘れないでください。この後の IIS の構成時に必要になります。以下、操作手順を段階的に説明します。
  1. プロファイルに使用する新規のユーザー アカウントを作成します。
  2. プロファイル専用のアカウントにログインして、表 1 から USER 環境に変数を追加します。
  3. IIS 管理コンソールを開きます。コマンド プロンプトから「compmgmt」と入力して、左側のナビゲーション ペインから「Services and Applications ¥ IIS Manager」を選択します。
  4. [接続 (Connections)] ビューで、[アプリケーション プール (Application Pools)] を選択します。
  5. [アクション] で、[アプリケーション プールの追加 (Add Application Pool)] をクリックします。好みの名前を付けてください (「Profiling Pool」など)。
  6. [アクション] で新しく作成したプールを選択して、[詳細設定] をクリックします。
  7. [プロセス モデル (Process Model)] までスクロールダウンして、[識別情報 (Identity)] フィールドの [SpecificUser] を選択します。
  8. ステップ 1 で作成したプロファイル専用のユーザー情報を使って、[ユーザー名] と [パスワード] のフィールドに入力します。
  9. 適切な PurifyPlus UI (Purify、Quantify、PureCoverage など) を開始します。
  10. [接続 (connection)] ビューで、[Web サイト] サブツリーを開きます。
  11. プロファイルする Web サイトを選択します。
  12. [アクション] ビューで [基本設定 (Basic Settings)] をクリックします。
  13. アプリケーション プールの横にある [選択 (Select)] ボタンをクリックします。
  14. プロファイルを有効にするには、ステップ 5 から 8 で作成したプロファイル専用のプールを選択します。プロファイルを無効にするには、それ以外のアプリケーション プールを選択してください。
  15. プロファイルする Web サイトを、ブラウザで開きます。
  16. プロファイルのファイナライズを行うには、接続内で [アプリケーション プール (Application Pools)] を選択して、プロファイル用に使うプールをクリックし、[アクション] ビューで [リサイクル (Recycle)] をクリックします。

プロファイルの有効/無効を切り替える場合は、それぞれについてステップ 11 から 14 までを行ってください。

グローバル システム レベルでプロファイルを有効にする方法
  1. 表 1 にリストされている環境変数を、SYSTEM 環境に追加します。
  2. オペレーティング システムをリブートします。
  3. 適切な PurifyPlus UI (Purify、Quantify、PureCoverage など) を開始します。
  4. プロファイルする ASP.NET ページを、ブラウザで開きます。

すべてのステップが正しく実行されると、PurifyPlus UI に新しいプロファイル セッションが表示されます。

IBM Rational ソフトウェア サポートへの問い合わせ

サポートの資格をお持ちのすべてのお客様は、電話や電子メールによるサポートもご利用になれます。 詳しくは www.ibm.com/software/support をご参照ください。

IBM Rational ソフトウェア サポートのインターネット サイトでは、ご自分でサ ポート情報を検索することができます。IBM Rational ソフトウェア サポートのホームページは www.ibm.com/planetwide で参照できます。