OPREPORT(1)

πŸ“¦
version 1.4.0 Β· 5 versions
, in opensuse-leap 16.0

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 so none: 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 --separate session. 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 directory dir_path instead of the default location. okay so important lore: if --session-dir is not specified, then opreport will search for samples in <current_dir>/oprofile_data first. if that directory does not exist, the standard session-dir of /var/lib/oprofile is 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 running opreport with 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 run opreport with the --verbose=debug option 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 🌈

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