Linked by Thom Holwerda on Fri 9th Nov 2007 20:45 UTC, submitted by Dubhthach
QNX DTrace has been ported to QNX. "The initial port to Neutrino that Colin and I have done is slightly different from the other OS ports. Since Neutrino is a micro-kernel, we wanted to see how far we could go keeping the dtrace module out of the kernel... And if possible even outside of the process manager. The current implementation has all of the dtrace system code, normally found in the kernel or a kernel module, encapsulated in a resource manager, io-dtrace, and the utility is a straight port of the Solaris utility."
Permalink for comment 283991
To read all comments associated with this story, please click here.
LoseThos
by losethos2 on Sun 11th Nov 2007 08:16 UTC
losethos2
Member since:
2007-10-22

LoseThos stores addresses of functions with their names when it loads code in. This was to allow symbolic disassembly. When it crashes, I do a stack dump with symbolic output. I wrote a routine which goes up the stack by assumeing procedures start and end with
.....push rbp
.....move rbp,rsp
.....
.....pop rbp
.....ret
LoseThos calls a plug-in for the wallpaper and the default wall-paper reports on tasks. It fetches the rpb of all tasks and uses it to give a stack report. I never heard of DTRACE, but I have something which reports the 4 levels of calls on my wallpaper. See the "new wallpaper" demo on my website.

http://www.losethos.com/newwall.html

That's funny -- I'm ahead ;-)

If you do not follow the push rbp rule, it will not work, but my compiler does and if you mess-it-up, tough luck.

Reply Score: -2