私はこれに慣れていないので、おそらく基本的な何かが欠けています。gcc 4.8 (MinGW) と -g オプションを使用して C プログラムをコンパイルします。
次にそれを実行し、Very Sleepy でキャプチャします。すべて動作しますが、Sleepy の出力は次のようになります。
memcpy 0.98 0.98 7.65 7.65 msvcrt unknown 0
[00000000004038FE] 0.77 0.77 6.02 6.02 a 0
memset 0.63 0.63 4.92 4.93 msvcrt unknown 0
[0000000000404549] 0.42 0.42 3.29 3.29 a 0
[000000000040282A] 0.35 0.35 2.73 2.73 a 0
[0000000000404600] 0.25 0.25 1.99 1.99 a 0
....
etc.
(私のアプリケーションは a.exe と呼ばれます)
Sleepy には関数名が表示されません。動作させるにはどのようにコンパイル/実行する必要がありますか? 眠そうなウェブサイトは以下を提供します:
GCC/mingw のサポート。DWARF2 データが埋め込まれた実行可能ファイルをプロファイリングできるようになり、動作するはずです。これには特別なオプションは必要ありません。「-g」を指定してコンパイルするだけで、シンボルが存在することを確認できます。通常、Sleepy はどちらの方法でも機能しますが、「-fno-omit-frame-pointer」を使用して正しいコールスタックを確保することもできます。「-pg」やゴミを使用する必要はありません。Microsoft DLL から GCC DLL への正しいスタックをウォークスルーすることもできますが、これは想像以上に困難でした。
しかし、私の場合は十分ではありません。