Tracing C++ Programs

2021-08-13 | Tags: #linux #tubitak

https://tracingsummit.org/ts/2016/files/Uftrace_-_TracingSummit_2016.pdf

uftrace c++ veya c kodları için bir tracing aracı. Kodu derlerken -pg parametresi eklenir.

g++ kvm.cpp -lpthread -pg

Sonrasında record başlatılır.

uftrace record -k ./a.out

-k parametresi ile kernel fonksiyonlarına erişim izni alabiliyoruz.

sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'

bu komut sayesinde de linux'da tracingin açık olup olmadığına bakabiliriz.

Uftrae trace dosyaları oluşturuyor burada. Sonrasında bunları görsel bir şekilde görmek istersek chrome dump'ı kullanabiliriz.

uftrace dump --chrome > b2.profile

Sonrasında Chromium 'a girerek chrome://tracing yazarak trace arayüzünü açabiliriz.

trace data'sını almak istersek

uftrace info
# process information
# ===================
# number of tasks     : 10
# task list           : 17185(a.out), 17191(a.out), 17192(a.out), 17193(a.out), 17254(a.out), 17275(a.out), 17304(a.out), 17363(a.out), 17384(a.out), 17411(a.out)
# exe image           : /home/a.out
# build id            : asd
# pattern             : regex
# exit status         : exited with code: 0
# elapsed time        : 18.102729312 sec
# cpu time            : 0.015 / 14.080 sec (sys / user)
# context switch      : 42 / 284 (voluntary / involuntary)
# max rss             : 5760 KB
# page fault          : 0 / 410 (major / minor)
# disk iops           : 0 / 8 (read / write)

This was the end of the blog post. You can reach me via email umusasadik at gmail com