2015-11-19 13 views
7

Indigo RCPアプリケーションでSleakを動作させようとしました。私はthis guideの手順に従った。私。私は、プラグインをインストールし、現在のプラグインにSWTツールのプラグインを追加して、必要なプラグインを追加して、トレースオプションを変更し、folder.addView("org.eclipse.swt.tools.views.SleakView");RCPのSleak:デバイスがリソース割り当てを追跡していません

で自分のアプリケーションにビューを追加したビューは確かに現れないが、私はエラーを取得しておきます'デバイスがリソース割り当てを追跡していません'を使用しようとしました。

私は.OPTIONSファイルがデバッグ構成にロードされたことを明示的にチェックしている問題に関するstackoverflowの中の古い質問への回答を試してみましたが、運

Sleak (SWT & RCP) : Device is not tracking resource allocation (eclipse 4.3)

Sleak SWT tool, Device is not tracking resource allocation

を持っていません実際に両方のトレースオプションが必要です。

追加のアイデアはありますか?

+0

最近のEclipseでこれを試したことがありますか?つまり、5年前のEclipseのバグですか? 「.optionsファイルをデバッグ設定にロードする方法」は、正しいオプションが選択されているか、別の方法で.optionsを渡しているかどうかを、トレースタブで調べることですか? –

+0

Trancingタブでトレースとデバッグを有効にすると、コンソール上で.optionsファイルを実行すると、.optionsファイルの場所が明示的に示されます(一部のチュートリアルでは、トレースオプションを手動で変更するよう指示されています)。私は、デバッグ構成にロードされたオプションファイルに両方のトレース行が含まれていることを確認しました。 – Yampeku

+0

私は再現しようとしています。あなたのバージョンのsleak swtプラグインと、実行しているOSプラットフォームを確認できますか? –

答えて

0

私はあなたが正しくこれらのプロパティを設定していないと思う:

org.eclipse.ui/debug=true 
org.eclipse.ui/trace/graphics=true 

enter image description here

+0

上記のコメントで説明したとおり、正しく設定しました。オプションはメールアプリでは動作しますが、何らかの理由でテストしたいアプリでは動作しません。 – Yampeku

1

を私は最近、同じ問題に直面し、解決策を見つけることができました。ここに私が見つけたものがあり、それがあなたを助けるかもしれないことを知っています。

RCPの起動時に、PlatformUI.createDisplay()が呼び出され、Workbench.createDisplay()が呼び出されます。これは、Sleakが必要とするデバッグ設定が正しく読み込まれ、設定される正確なポイントです。

私たちのソフトウェアでは、上記のPlatformUI.createDisplay()の呼び出しの前にDisplay.getDefault()への呼び出しが行われました。デフォルトとして設定された新しいDisplayオブジェクトが作成されました。この作成では、デバッグ設定の読み込みと設定は行われませんでした。

私たちのコードがPlatformUI.createDisplay()コールに到達するまでに、実際には新しいディスプレイを作成しませんでした。代わりに、以前に作成された、デバッグに適していないものを返しました。したがって、「デバイスがリソース割り振りを追跡していない」ことに関する警告が表示されます。

メソッドDisplay.register (Display display)にブレークポイントを追加すると、初期の作成元を特定し、正しく変更することができました。

関連する問題