Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
1.4 kB · 42 lines
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243" Enable folding for ftrace function_graph traces."" To use, :source this file while viewing a function_graph trace, or use vim's" -S option to load from the command-line together with a trace. You can then" use the usual vim fold commands, such as "za", to open and close nested" functions. While closed, a fold will show the total time taken for a call," as would normally appear on the line with the closing brace. Folded" functions will not include finish_task_switch(), so folding should remain" relatively sane even through a context switch."" Note that this will almost certainly only work well with a" single-CPU trace (e.g. trace-cmd report --cpu 1).
function! FunctionGraphFoldExpr(lnum) let line = getline(a:lnum) if line[-1:] == '{' if line =~ 'finish_task_switch() {$' return '>1' endif return 'a1' elseif line[-1:] == '}' return 's1' else return '=' endifendfunction
function! FunctionGraphFoldText() let s = split(getline(v:foldstart), '|', 1) if getline(v:foldend+1) =~ 'finish_task_switch() {$' let s[2] = ' task switch ' else let e = split(getline(v:foldend), '|', 1) let s[2] = e[2] endif return join(s, '|')endfunction
setlocal foldexpr=FunctionGraphFoldExpr(v:lnum)setlocal foldtext=FunctionGraphFoldText()setlocal foldcolumn=12setlocal foldmethod=expr