Javaはスレッドのスタックトレースをどのように生成しますか?Javaは内部的にStackTrace機能をどのように維持しますか
例:
はfunctionC
通話functionD
を呼び出しfunctionB
functionA
呼び出しを考えてみましょう。 functionD
getStackTraceElementArray
の任意の時点で使用されている場合、それはfunctionCallsの配列を与える:
functionC->functionB->functionA
はどのようにJavaは、実行時にStackTraceElement
配列を埋めるのですか?コールされた関数が呼び出された関数の内部に到達したときにそれを満たすと仮定すると、JVMは呼び出されたメソッドの中で呼び出し元のメソッドの参照をどのように取得しますか?
@Robby Cornelissen:これは重複した質問ではありませんが、スタックトレースを取得する方法は問いませんが、Javaは内部的にどのように作成しますか?人口が多い。 –
質問をしてください。メソッドスタックエリアのハンドラがあり、JavaプログラムでStackTraceElement Arrayを手動で作成または埋め込むために使用できます。現在のスタックトレースを取得する方法を探しているように思えます。 –
再開。今[ここ](http://stackoverflow.com/questions/12865180/how-do-stack-traces-get-generated)を参照してください。 –