これらを試しましたが、すべて「空の」出力ファイルが生成されます。
trace-cmd record -p function_graph -g munmap -F ls
trace-cmd record -p function_graph -g sys_enter_munmap -F ls
trace-cmd record -p function_graph -g sys_enter -F ls
これらを試しましたが、すべて「空の」出力ファイルが生成されます。
trace-cmd record -p function_graph -g munmap -F ls
trace-cmd record -p function_graph -g sys_enter_munmap -F ls
trace-cmd record -p function_graph -g sys_enter -F ls
まず、関数名を正しく取得する必要があります。たとえば、open
syscall のトレースに使用する関数名はsys_open
.
これを「適切な」方法で行うにfunction_graph
は、カーネルでサポートする必要があります。x86 アーキテクチャでは、これは CC_OPTIMIZE_FOR_SIZE が無効になっていることに依存しますが、x86_64 ではそうではありません。
私の場合、CC_OPTIMIZE_FOR_SIZE を無効にするためにカスタム カーネルをコンパイルする必要はありませんでした。
trace-cmd record -p function --func-stack
-l
いくつかのオプションを追加することで呼び出されるように見えるさまざまな関数が含まれていました。自分の知りたいことを理解するには、これで十分でした。