いやなブログさんのsetitimer システムコールを使って簡単なプロファイラを作るという記事で解説されているプロファイラー(通称:いやなプロファイラー *1)をIA64で動かしてみた。

*1 おいらが命名


せっかくだからパッチ晒しとく。
しかし、インストラクションポインタが存在しないアーキなんて存在しないのに、機種非依存コードにする方法を思いつかないこのもどかしさ。
嗚呼・・・・

--- itimer_prof.orig    2006-06-13 14:13:21.000000000 +0900
+++ itimer_prof.c 2006-05-18 12:12:26.000000000 +0900
@@ -9,7 +9,12 @@ static FILE *prof_fp;


static void
prof_handler(int signal, siginfo_t *siginfo, void *ucontext)
{
+#ifdef __ia64__
+ struct ucontext *uc = (struct ucontext *)ucontext;
+ unsigned long long int pc = uc->uc_mcontext.sc_ip;
+#else /* assume i386*/
struct ucontext *uc = (struct ucontext *)ucontext;
unsigned long int pc = uc->uc_mcontext.eip;
+#endif


fwrite(&pc, sizeof(pc), 1, prof_fp);





ヴァルキリープロファイル
女神さまをもプロファイル! ランキング!