OPREPORT(1)
OPREPORT(1) β the iconique profiler summary tool β¨
okay so bestie, this is opreport from the General Commands Manual and lemme tell you, it's literally the main character of outputting your profiling data π
β¨ NAME β¨
opreport β produce symbol or binary image summaries π
so basically it takes your OProfile vibes and turns them into something readable, no cap.
πΈ SYNOPSIS πΈ
opreport [ options ] [profile specification]
π¦ DESCRIPTION π¦
opreport outputs binary image summaries, or per-symbol data, from OProfile profiling sessions. it's giving "here's what your code was actually doing" energy fr fr π
if you're confused about writing profile specifications, go peep oprofile(1) β it's all there, iykyk.
π OPTIONS π
like there are SO many options and honestly? each one is iconic in its own way. let's get into it:
--accumulated,-aβ accumulate sample and percentage counts in the symbol list. like, stack 'em up babe π--debug-info,-gβ show source file and line for each symbol. debug mode activated, we love to see it β¨--demangle,-D none|smart|normalβ okay sonone: no demangling at all, we're keeping it raw.normal: use default demangler (this is the default bestie, it's giving standard behavior).smart: use pattern-matching to make C++ symbol demangling more readable β highkey genius tbh π§--callgraph,-cβ show call graph information if available. who called whom? the drama of it all π--details,-dβ show per-instruction details for all selected symbols. we're getting granular, we're zooming in, we're obsessed π--exclude-dependent,-xβ do NOT include application-specific images for libraries, kernel modules and the kernel. okay but heads up bestie: this option only makes sense if the profile session used--separate. so like, if you didn't do that, this whole flag is just vibing for no reason π--exclude-symbols,-e [symbols]β exclude all the symbols in the given comma-separated list. bye felicia to those symbols π--global-percent,-%β make ALL percentages relative to the whole profile. no more local percentages, we're going global periodt π--help,-?,--usageβ show help message. when in doubt, ask for help, it's giving self-care energy π«Ά--image-path,-p [paths]β comma-separated list of additional paths to search for binaries. this is legit needed to find modules in kernels 2.6 and upwards β throwback but important fr π§--root,-R [path]β a path to a filesystem to search for additional binaries. like chroot but for finding stuff ποΈ--include-symbols,-i [symbols]β only include symbols in the given comma-separated list. this is the VIP list, if you're not on it you're not getting in π--long-filenames,-fβ output full paths instead of basenames. no more guessing where things live π₯--merge,-m [lib,cpu,tid,tgid,unitmask,all]β merge any profiles separated in a--separatesession. it's giving "bring the family back together" energy π--no-header,-nβ don't output a header detailing profiling parameters. sometimes you just want the data and nothing else, i respect that π--output-file,-o [file]β output to the given file instead of stdout. save it for later bestie πΎ--reverse-sort,-rβ reverse the sort from the default. flip it and reverse it, the way that Missy Elliott intended it π΅--session-dir=dir_pathβ use sample database from the specified directorydir_pathinstead of the default location. okay so important lore: if--session-diris not specified, thenopreportwill search for samples in<current_dir>/oprofile_datafirst. if that directory does not exist, the standard session-dir of/var/lib/oprofileis used. so like, it checks the vibes of your current directory first, and if that's not giving, it goes to the standard spot π--show-address,-wβ show each symbol's VMA address. for when you need to know EXACTLY where things are at π―--sort,-s [vma,sample,symbol,debug,image]β sort the list of symbols by, respectively, symbol address, number of samples, symbol name, debug filename and line number, binary image filename. so many ways to organize your data, pick your fave, it's giving customizable aesthetic β¨--symbols,-lβ list per-symbol information instead of a binary image summary. okay so here's the tea: usually, the total of all per-symbols samples for a given binary image equals the summary count for the binary image (shown by runningopreportwith no options). HOWEVER β and this is the important part β it's possible for some sample addresses to fall outside the range of any symbols for a given binary image. in such cases, the total number of per-symbols samples for the binary image may be less than the summary count for the image. if you runopreportwith the--verbose=debugoption it will display an informational message when this difference is detected. this difference is typically very small and can be ignored. so like, don't panic if the numbers don't match perfectly, it's usually fine, no cap π--threshold,-t [percentage]β only output data for symbols that have more than the given percentage of total samples. for profiles using multiple events, if the threshold is reached for any event, then all sample data for the symbol is shown. filtering but make it smart π‘--verbose,-V [options]β give verbose debugging output. when you need ALL the information, we're talking everything, no holding back π£οΈ--version,-vβ show version. know what you're working with bestie π·οΈ--xml,-Xβ generate XML output. for when you need it in that specific format, we love interoperability π
π ENVIRONMENT π
No special environment variables are recognized by opreport.
like literally none. zero. it's not looking at your environment for vibes, it's just doing its thing independently, main character energy fr π
π FILES π
<session_dir>/samplesβ the location of the generated sample files. this is where the magic data lives, it's giving "home sweet home" for your samples π
β VERSION β
This man page is current for oprofile-1.4.0.
so yeah, that's the version bestie, make sure you're on the right one π«
π SEE ALSO π
/usr/share/doc/oprofile/oprofile(1)
go check these out if you want more lore, they're serving knowledge πβ¨
that's the whole thing bestie! go forth and profile with confidence, you're literally going to slay this π ππΈ
β xoxo, from the 4th Berkeley Distribution, dated Thu 28 September 2023, version vibes on point π¦πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: oprofile 1.4.0-bp160.1.14 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: oprofile 1.4.0-bp160.1.14 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: oprofile 1.4.0-bp160.1.14 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: oprofile 1.4.0-bp160.1.14 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms