2010-08-09 4 views
2

J'ai besoin de tracer tous les appels pwrite (2) effectués sur un fichier spécifique et d'imprimer tous les tampons qui doivent être écrits octet par octet. Les données attendues ne sont pas au format de chaîne ASCII donc je ne peux pas utiliser:DTrace: comment imprimer les tampons mémoire

printf("%s\n", copyinstr(arg1)) 

J'ai appris copyin (arg1, arg2), mais qui me donne un vide * et tous les exemples que j'ai trouvé caché à chaîne à nouveau en appelant stringof, par exemple:

printf("%s\n", stringof(copyin(arg1, arg2))) 

Ce que je besoin est d'afficher une certaine façon tous les octets dans le tampon copyin'ed. Aucune suggestion?

Merci, Inso.

Répondre

1

Ok, c'est fait avec tracemem(buffer, size) appel.

+0

'tracemem' a une limitation - la taille doit être constante - cf. http://serverfault.com/questions/486419/printing-variable-sized-binary-data-from-reads-and-writes-with-dtrace – maxschlepzig

Questions connexes