問題タブ [flamegraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
66 参照

rust - 特定のバイナリ実行可能ファイルに対するフレームグラフの作成

flamegraphRust 実行可能ファイル ( にあります)を作成したいと考えていますtarget/release/name-of-binaryここperfまでのコマンドを見つけました

ただし、私は mac os を訴えているのでperf、持っておらず、使用する必要がありますdtrace。特定の PID での使用dtrace方法はわかりましたが、特定の Rust バイナリでの使用方法がわかりません。どんな助けでも大歓迎です!

0 投票する
2 に答える
216 参照

c++ - C++ 標準ライブラリを含むフレーム ポインタ パフォーマンス コール スタック/フレームグラフを取得するにはどうすればよいですか?

fpでコール スタックを収集する方法が気に入っています。perf record軽量で より複雑ではないからdwarfです。しかし、プログラムが C++ 標準ライブラリを使用するときに取得するコール スタック/フレームグラフを見ると、それらは正しくありません。

テストプログラムは次のとおりです。

そして、ここにフレームグラフがあります:

ここに画像の説明を入力

これは、Docker コンテナー内の Ubuntu 20.04 で次の手順によって生成されました。

これの主な問題点は、すべての関数が の子であるとは限らないことstupid_factorialです__memcmp_avx2_movbe。でdwarf、彼らはです。より複雑なプログラムでは、これらのような関数が outside にあることさえ見てきmainました。__dynamic_castたとえば、多くの場合、親を持たないものです。

ではgdb、ここで正しく表示されない関数を含め、常に正しいバックトレースが表示されます。自分でコンパイルせずに正しいfp呼び出しスタックを取得することは可能ですか (これは大変な作業のようです)?libstdc++

他にも奇妙な点がありますが、Ubuntu 18.04 (Docker コンテナーの外部) では再現できませんでした。

  • に未解決の機能がありlibstdc++.so.6.28ます。
  • 私自身のバイナリには6_stl.bin、左端に未解決の関数があります。の場合も同様dwarfです。