trace script should work:
io:::start
{
printf("pathname=%s\n", args[2]->fi_pathname);
}
Note the fact we are referring to fi_pathname, with no struct definition
in sight! This works because /usr/lib/dtrace/io.d is read, and this works
with the kernel ctf file.
A big problem with this release is for those of you on older kernels,
this likely means older glibc releases and unless you have libdwarf.a
you wont be able to compile the ctfconvert utility. Compilation will
proceed, but you wont get the kernel (linux-`uname -r`.ctf) file.
And hence, you wont have access to the args[n] arguments to io:::start.
I'm debating what to do - some older systems have libdw.a, but thats effectively
an out of date version of the required library and is missing various
systems. (Essentially, its gcc which is the important bit - if GCC can
generate certain DWARF constructs, but libdw.a cannot parse them, then we
lose).
The alternative is to add libdwarf source to the distro or provide
an autodownload link. I'll see what people have to say/complain before
doing anything in this space.
Better to have a working dtrace for the latest kernels, and try and get
people to upgrade to match the requirements. (I dont like doing this
but its acceptable if I am to make any progress).
Post created by CRiSP v10.0.2a-b5886
No comments:
Post a Comment