Xamarin Profiler のトラブルシューティング
ログと診断
Xamarin チームは、次のような情報を提供いただければ、イシューの追跡をお手伝いできます。
- 問題、クラッシュ、または失敗と、そこに至るまでのワークフローを示すスクリーンキャスト。
- ログ出力 (下記参照)。
- プロファイル セッション用に生成される .mlpd (下記参照)。
ログ出力の取得
Mac 上では、ログは ~/Library/Logs/Xamarin.Profiler/Profiler.<date>.log
に保存されます。
Windows では、それらは %appdata%Local//Xamarin/Log/Xamarin.Profiler/Profiler.<date>.log
に保存されます。イシューを送信する場合は、そのたびに最新のログを含めてください。
先に進めながらログを追加していくので、この出力は徐々に増加し、より有用なものとなるはずです。
.mlpd ファイルの生成
.mlpd ファイルは、mono ランタイム プロファイラーの圧縮出力です。 Xamarin Profiler GUI では、.mlpd からそのデータを読み取り、ユーザー向けに表示します。 .mlpd ファイルは、Xamarin 用の便利なデバッグ ツールです。それを参照することで、エンジニアは、Profiler に含まれる可能性のある、データに関する問題を容易に診断することができるからです。
現在のセッションの .mlpd は Mac /tmp
ディレクトリに自動的に保存され、タイムスタンプで識別することができます。 ログを有効にすると、最初の出力は .mlpd ファイルへのパスになります。 .mlpd ファイルは、通常、~/var/folders... で始まるディレクトリに保存されます。
現在のセッションに対する .mlpd は、Profiler のメニューから [ファイル] > [名前を付けて保存...] の順に選択して保存することもできます。
Visual Studio for Mac:
Visual Studio:
.mlpd には多くの情報が保存されるため、ファイル サイズの増大に注意することが重要です。
トラブルシューティング
次の一覧では、Profiler を使用する場合の一般的な注意事項、回避策、ヒントおよびテクニックを示します。
Note
Windows 用 Visual Studio Enterprise または Visual Studio for Mac のいずれかでこの機能のロックを解除するには、Visual Studio Enterprise のサブスクライバーである必要があります。
iOS プロファイラー オプションが表示されない、または灰色表示になっている [Visual Studio と Visual Studio for Mac]
これを解決するには、次の設定を確認します。
- デバッグ構成を使用していることを確認する
- SGen ガベージ コレクターを使用していることを確認する。
- プラットフォームがサポートされていることを確認する。
- 適切なライセンスを所持していることを確認する。
- ログインし、適切に認証されていることを確認する。
- [Visual Studio] Visual Studio Enterprise を使用していて、有効な Enterprise ライセンスを所持している必要がある。
Profiler を起動しようとするとエラーが発生する
Visual Studio で Profiler を使用しているときにこのエラー ボックスが表示された場合:
通常は、シミュレーターまたはエミュレーターを起動できないことが原因です。 アプリを通常どおりに実行して、発生する問題を修正してから、Profiler をもう一度使用してみてください。
特定のスレッドを監視するには
詳しく監視したいスレッドがある場合は、それを作成する最初の段階でスレッドに名前を付けて、0x0
ではなく ThreadName
を取得することが理想的です。 たとえば、スレッド名を UI
に設定するには、次のコードを使用できます。
RunOnUiThread (() => {
Thread.CurrentThread.Name = "UI";
});