[技術] プロファイラ動作原理、ご存知の方


こんなにいろいろやってくれるプロファイラだが、どうやって実現されているのか興味がある。
プロファイラの動作原理とはどのようなもの?
↓のような3層構造で測定対象アプリケーションを実行することで
アプリケーションからJVMに出される命令((というのでしょうか?例えば
インスタンスを生成しろ」とかこのインスタンスのこのメソッドを呼べとか))を
プロファイラが追跡している、というのが動作原理なのか?


(上位層)
・測定対象アプリケーション
・プロファイラ
JVM
(下位層)


それからデバッガの動作原理も↑のようになっている?
デバッガもプロファイラもいずれも動的にアプリケーションの
実行パスを追跡できるものだと思っていますが...


ご存知の方がいらっしゃれば、どんな本を読めばよいか、どのWebページを見ればよいか
教えていただけると嬉しいです。あと、もし上記の認識に誤解があれば
ご指摘も大歓迎です。