aboutsummaryrefslogblamecommitdiffhomepage
path: root/debug.txt
blob: 18f054db035f68d81b42c790382293932beac908 (plain) (tree)
























                                                                                
                     

                          
                            




                                                                 




                                                                      


                                                                                          










                                                                











                                                                                
.:: debugging ::.
--------------------------------------------------------------------------------

# print syscalls of process with all threads (-f) of running process
strace -f -p <pid>
# only trace certain syscalls
strace -f -p <pid> -e trace=open,socket
# trace signals delivered to process
strace -f -p <pid> -e signal

# dump stack of process and all threads
pstack <pid>

# print file flags
# +fg    print file flag abbreviations
lsof +fg -p <pid>

# print process virt mem map
# compared to /proc/<>/maps it shows the size of the mappings
pmap <pid>


# get supported events
perf list

## show process stats
perf stat -p <pid>
perf stat -p <pid> -I <ms>
# select events of interests
perf stat -p <pid> -e cycles,faults,cache-misses,context-switches

# -K    hide kernel threads
perf top -F 99 -p <pid> -K

## record measurement into db
# -g uses 'fb' = frame-pointer as default method to collect backtraces
# tell gcc to not optimize fp out -fno-omit-frame-pointer
perf record -F 99 -p <pid> -g
# use post processing and dwarf to collect backtraces
perf record -F 99 -p <pid> --call-graph dwarf
perf record -F 99 -p <pid> -e instructions,cpu-cycles,faults,cache-misses,context-switches

## report perf db
# print to stdio
perf report -n --stdio
# use tui
perf report -g graph,0.5,caller

# flamegraph (https://github.com/brendangregg/FlameGraph)
# record events of interest, eg page-faults
perf stat -e page-faults -I 1000 -p 571
perf script | FlameGraph/stackcollapse-perf.pl > out.perf-folded
FlameGraph/flamegraph.pl out.perf-folded > perf-trace.svg

# print supported events
ophelp

operf -p <pid>

opreport -c
opreport -l

--------------------------------------------------------------------------------
vim:sts=2:et:tw=80:cc=80:fo+=t:ft=help