Peter Kjellstrom wrote: > On Thursday 12 August 2010, Hywel Richards wrote: > >> Hi all, >> >> Is anyone using oprofile? >> >> I'm getting segfaults from opreport at the moment, and I'm not sure if >> it is opreport, or just me. >> > > I've tried the steps you outline below and it works for me (updated C5.5 as of > 10m ago). My only guess is that your binary is b0rked. What happens if you > do "opreport -l" instead of "opreport -l /tmp/myprog"? Was myprog compiled > with "-g"? > > And just to be sure, could you provide "uname -a" and "rpm -q oprofile". > > /Peter > "opreport -l" gives: warning: /no-vmlinux could not be found. warning: [vdso] (tgid:11369 range:0xdc9000-0xdca000) could not be found. warning: [vdso] (tgid:2453 range:0x154000-0x155000) could not be found. warning: [vdso] (tgid:24792 range:0x8e6000-0x8e7000) could not be found. warning: [vdso] (tgid:24797 range:0xd4a000-0xd4b000) could not be found. warning: [vdso] (tgid:3211 range:0x660000-0x661000) could not be found. warning: [vdso] (tgid:3426 range:0xed7000-0xed8000) could not be found. warning: [vdso] (tgid:3429 range:0x798000-0x799000) could not be found. warning: [vdso] (tgid:3549 range:0x3a8000-0x3a9000) could not be found. warning: [vdso] (tgid:3551 range:0x86b000-0x86c000) could not be found. warning: [vdso] (tgid:3575 range:0x90a000-0x90b000) could not be found. warning: [vdso] (tgid:3595 range:0xd9d000-0xd9e000) could not be found. warning: [vdso] (tgid:3641 range:0xfed000-0xfee000) could not be found. warning: [vdso] (tgid:3672 range:0xd1e000-0xd1f000) could not be found. warning: [vdso] (tgid:3673 range:0x133000-0x134000) could not be found. warning: [vdso] (tgid:3684 range:0x5c2000-0x5c3000) could not be found. warning: [vdso] (tgid:3693 range:0x189000-0x18a000) could not be found. warning: [vdso] (tgid:3698 range:0x903000-0x904000) could not be found. warning: [vdso] (tgid:3702 range:0x139000-0x13a000) could not be found. warning: [vdso] (tgid:3709 range:0xeb1000-0xeb2000) could not be found. warning: [vdso] (tgid:3756 range:0xf03000-0xf04000) could not be found. warning: [vdso] (tgid:3788 range:0xb7f49000-0xb7f4a000) could not be found. warning: [vdso] (tgid:3800 range:0x7e4000-0x7e5000) could not be found. warning: [vdso] (tgid:3836 range:0x662000-0x663000) could not be found. warning: [vdso] (tgid:3899 range:0xd2e000-0xd2f000) could not be found. warning: [vdso] (tgid:3902 range:0x33c000-0x33d000) could not be found. warning: [vdso] (tgid:5178 range:0xb7f50000-0xb7f51000) could not be found. warning: [vdso] (tgid:6643 range:0xfaa000-0xfab000) could not be found. CPU: Core Solo / Duo, speed 800 MHz (estimated) Counted CPU_CLK_UNHALTED events (Unhalted clock cycles) with a unit mask of 0x00 (Unhalted core cycles) count 100000 bfd_get_section_contents:get_debug:: Bad value myprog was not compiled with -g, but that shouldn't be a requirement, right? Anyway, I recompiled my program with -g and I still get a segfault from "opreport -l". If I skip the "-l", it at least doesn't segfault, but then not so interesting information: opreport /tmp/myprog2 CPU: Core Solo / Duo, speed 1867 MHz (estimated) Counted CPU_CLK_UNHALTED events (Unhalted clock cycles) with a unit mask of 0x00 (Unhalted core cycles) count 100000 CPU_CLK_UNHALT...| samples| %| ------------------ 25950 100.000 myprog2 Here's what I get when I do it on, say, gcc (no segfault this time, but perhaps it gives some indication of what is going wrong?): opreport /usr/bin/g++ -l warning: [vdso] (tgid:25547 range:0xc49000-0xc4a000) could not be found. warning: [vdso] (tgid:25550 range:0x749000-0x74a000) could not be found. warning: [vdso] (tgid:25565 range:0xefc000-0xefd000) could not be found. CPU: Core Solo / Duo, speed 1867 MHz (estimated) Counted CPU_CLK_UNHALTED events (Unhalted clock cycles) with a unit mask of 0x00 (Unhalted core cycles) count 100000 bfd_get_section_contents:get_debug:: Bad value "uname -a" gives: Linux myhost 2.6.18-194.11.1.el5 #1 SMP Tue Aug 10 19:09:06 EDT 2010 i686 i686 i386 GNU/Linux "rpm -q oprofile" gives: oprofile-0.9.4-15.el5 I also did an "rpm -V oprofile" - no problems. For the moment I'm working around this by compiling my program into a shared library, and using LD_PROFILE and sprof, which is working well. Hywel.