diff -r bdfc3faa253a src/cmd/prof/main.c --- a/src/cmd/prof/main.c Fri Dec 04 21:58:32 2009 -0800 +++ b/src/cmd/prof/main.c Sat Dec 05 10:36:13 2009 -0800 @@ -8,7 +8,8 @@ #include #include -#include +//#include +#include #include char* file = "6.out"; @@ -73,6 +74,7 @@ regprint(void) fprint(2, "si\t0x%llux\n", ureg.si); fprint(2, "di\t0x%llux\n", ureg.di); fprint(2, "bp\t0x%llux\n", ureg.bp); + /* fprint(2, "r8\t0x%llux\n", ureg.r8); fprint(2, "r9\t0x%llux\n", ureg.r9); fprint(2, "r10\t0x%llux\n", ureg.r10); @@ -81,13 +83,17 @@ regprint(void) fprint(2, "r13\t0x%llux\n", ureg.r13); fprint(2, "r14\t0x%llux\n", ureg.r14); fprint(2, "r15\t0x%llux\n", ureg.r15); + */ fprint(2, "ds\t0x%llux\n", ureg.ds); fprint(2, "es\t0x%llux\n", ureg.es); fprint(2, "fs\t0x%llux\n", ureg.fs); fprint(2, "gs\t0x%llux\n", ureg.gs); + /* fprint(2, "type\t0x%llux\n", ureg.type); fprint(2, "error\t0x%llux\n", ureg.error); fprint(2, "pc\t0x%llux\n", ureg.ip); + */ + fprint(2, "pc\t0x%llux\n", ureg.pc); fprint(2, "cs\t0x%llux\n", ureg.cs); fprint(2, "flags\t0x%llux\n", ureg.flags); fprint(2, "sp\t0x%llux\n", ureg.sp); @@ -163,7 +169,7 @@ sample(Map *map) } } else { // we need only two registers - if(get8(map, offsetof(struct Ureg, ip), (uvlong*)&ureg.ip) < 0) + if(get8(map, offsetof(struct Ureg, pc), (uvlong*)&ureg.pc) < 0) goto bad; if(get8(map, offsetof(struct Ureg, sp), (uvlong*)&ureg.sp) < 0) goto bad; @@ -277,7 +283,7 @@ samples(void) ctlproc(pid, "start"); return; } - printpc(map[i], ureg.ip, ureg.sp); + printpc(map[i], ureg.pc, ureg.sp); ctlproc(pid, "start"); } nanosleep(&req, NULL);