Povolil jsem sledování událostí ftrace pro sys_enter_openat syscall. Příslušný výstupní formát uvedený na events/syscalls/sys_enter_openat/format je
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))
Jak se očekávalo, vzorový výstupní řádek pro ftrace je něco jako
msm_irqbalance-1338 [000] ...1 211710.033931: sys_openat(dfd: ffffff9c, filename: 5af693f224, flags: 2, mode: 0)
Existuje způsob, jak změnit výstupní formát tak, že filename: 5af693f224
lze zobrazit jako filename: <string>
místo hex(5af693f224)
?
V zásadě tedy existuje způsob, jak změnit výstupní formát při sledování konkrétní události (např. sys_enter_openat výše) na ftrace.
Myslím, že by to bylo možné pomocí systemtap nebo krpobe, ale moje nastavení to zatím neumožňuje.
Přijatá odpověď:
Bohužel v současné době neexistuje způsob, jak toho dosáhnout. Ale možná to v budoucnu přidám, pokud dokážu přijít na rozumné rozhraní a implementaci, abych takovou věc udělal. Možná přidám spoušť, díky které se výstup bude zobrazovat jinak.
I když jsem možná na StackExchange nový, jsem autorem ftrace (skutečným jménem Steven Rostedt – podívejte se do historie git). Ke „skutečné odpovědi“ dojde, když kód napíšu!