Rich Morin
2008-Mar-11 07:54 UTC
[dtrace-discuss] Running DTrace on a Solaris VM under OSX?
I have an Intel OSX machine that can, in theory, run Solaris under Parallels, VMware Fusion, etc. However, I''m basically clueless about Solaris (I upgraded from SunOS to FreeBSD :-) and don''t know how to approach this problem. If someone has succeeded in running DTrace on a Solaris VM under OSX, I would be delighted to work with them to create a HowTo page on the wiki. Please contact me off-list... -r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm at cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development
Vladimir Marek
2008-Mar-11 09:34 UTC
[dtrace-discuss] Running DTrace on a Solaris VM under OSX?
> I have an Intel OSX machine that can, in theory, run Solaris > under Parallels, VMware Fusion, etc. However, I''m basically > clueless about Solaris (I upgraded from SunOS to FreeBSD :-) > and don''t know how to approach this problem. > > If someone has succeeded in running DTrace on a Solaris VM > under OSX, I would be delighted to work with them to create > a HowTo page on the wiki. Please contact me off-list...Since registration on the wiki seems to be disabled, those are my three wishes: 6496550 DTrace needs a way to get time linear sequential output on multi-cpu systems. - if you have more than one cpu core, dtrace output is just a mess. You have to trace(timestamp) in every probe and later sort the output by cat output | sed -e ''s/^ *[^ ]* *[^ ]* *//'' | sort -n +1 > sorted 6314638 Dtrace needs a packet dumper - if you ever tried to dump mblk_t structures in streams module, you know what I''m talking about 5059507 watchpoint provider - That would be nice, but falls a bit out of dtrace scope, as the probes would have to be generated during dtrace run. But how sweet would be this? pid$target::malloc:entry /self->is_inside_my_function/ { self->x = 1; } pid$target::malloc:return /self->is_inside_my_function && self->x/ { add_watchpoint("my_memory", arg0, 10) } watchpoint:my_memory:write:entry { printf("Culprit ! Memory %p is being changed\n", arg0); printf("Previous value = %c", stringof(copyin(arg0, 1))); ustack(); } watchpoint:my_memory:write:return { printf("new value = %c", stringof(copyin(arg0, 1))); } Thanks -- Vlad -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 193 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20080311/2cdafb75/attachment.bin>