J'ai activé le suivi des événements ftrace pour sys_enter_openat syscall. Le format de sortie respectif donné à events/syscalls/sys_enter_openat/format est
print fmt: "dfd: 0x%08lx, filename: 0x%08lx, flags: 0x%08lx, mode: 0x%08lx", ((unsigned long)(REC->dfd)), ((unsigned long)(REC->filename)), ((unsigned long)(REC->flags)), ((unsigned long)(REC->mode))
Comme prévu, un exemple de ligne de sortie vers ftrace est quelque chose comme
msm_irqbalance-1338 [000] ...1 211710.033931: sys_openat(dfd: ffffff9c, filename: 5af693f224, flags: 2, mode: 0)
Existe-t-il un moyen de modifier le format de sortie tel que filename: 5af693f224
peut être affiché sous la forme filename: <string>
au lieu de hex(5af693f224)
?
Donc, fondamentalement, existe-t-il un moyen de changer le format de sortie tout en traçant un événement particulier (par exemple, sys_enter_openat ci-dessus) vers ftrace.
Je suppose que cela aurait été possible en utilisant systemtap ou krpobe mais ma configuration ne permet pas son utilisation pour le moment.
Réponse acceptée :
Malheureusement, il n'existe actuellement aucun moyen de le faire. Mais peut-être que je pourrais l'ajouter à l'avenir, si je peux trouver une interface et une implémentation sensées pour faire une telle chose. J'ajouterai peut-être un déclencheur qui rendra la sortie différente.
Bien que je sois nouveau sur StackExchange, je suis l'auteur de ftrace (de mon vrai nom Steven Rostedt - consultez l'historique de git). La "vraie réponse" arrivera quand j'écrirai le code !