Hamish <[email protected]> wrote: > AKA, what's wrong with the following? Isn't a string literal always a > constant? > > $ cat > cfretain_calayer.d > pid$target::CFRetain:entry > { > isaptr = *(uint32_t*)copyin(arg0, 4); > classnameptr = *(uint32_t*)copyin(isaptr+8, 4); > classname = copyinstr(classnameptr); > > p = (classname == "CALayer" ? "CFRetain(CALayer)\n" : ""); > printf(p); > } > > $ sudo dtrace -p 31303 -s cfretain_calayer.d > dtrace: failed to compile script cfretain_calayer.d: line 8: printf( ) > argument #1 is incompatible with prototype: > prototype: string constant > argument: string
It is not simple for a compiler to check this as p is definitely not a string constant but only pointing to one. Jörg -- EMail:[email protected] (home) Jörg Schilling D-13353 Berlin [email protected] (uni) [email protected] (work) Blog: http://schily.blogspot.com/ URL: http://cdrecord.berlios.de/private/ ftp://ftp.berlios.de/pub/schily _______________________________________________ dtrace-discuss mailing list [email protected]
