jstackjstack
のオンライン ドキュメントを調べて、Java コマンドを理解しようとしています。
jstack は、特定の Java プロセス、コア ファイル、またはリモート デバッグ サーバーの Java スレッドの Java スタック トレースを出力します。Java フレームごとに、完全なクラス名、メソッド名、'bci' (バイト コード インデックス)、および行番号 (利用可能な場合) が出力されます。-m オプションを指定すると、jstack はすべてのスレッドの Java フレームとネイティブ フレームの両方を「pc」(プログラム カウンタ) とともに出力します。ネイティブ フレームごとに、'pc' に最も近いネイティブ シンボルがあれば、それが出力されます。C++ マングルされた名前はデマングルされません。C++ 名を解読するために、このコマンドの出力を c++filt にパイプすることができます。
このコマンドを理解するのを手伝ってください。
1)コアファイルは、スタックトレースを出力したいファイルの名前ですか、それとも違いますか? ここでのリモート デバッグ サーバーとは何ですか? また、どのように使用または構成できますか?
2) このコンテキストでの Java フレームとは何ですか? また、スレッドのネイティブ フレームとは何ですか?
3) マイクロプロセッサを学んでいたときにプログラムカウンタについて学びましたが、同じ概念は Java にも適用されますか?
4) PC に最も近いネイティブ シンボルとはどういう意味ですか? また、Java での c++ の使用方法についても、Java を学んでいるときに c++ に出くわしたことはありません。
明確にしてください、事前に感謝します。