Re: Does sprof work on CentOS5?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Filipe Brandenburger wrote:
Acutally I have no idea of what sprof is or does, but from the error
Let me tell you about sprof, then, because it is fantastic!
Of course, it would be even better if it worked.
It is a statistical profiler for shared object libraries that
(presumably) works by sampling the position of the program counter every
now and again. All you need to do is set the value of LD_PROFILE to the
name of the .so and statistics will get dumped to a file in /var/tmp.
You can then use sprof to build a profile from those stats in the same
way that gprof does from a gmon.out file.
But it's much better than gprof as you don't have to compile with
special flags which cause code to get inserted and distorts the timing
of your program anyway. And as it profiles .so files it also allows you
to easily profile python modules, for example, where you don't want to
recompile the main program.
Unfortunately, there does not seem to be much information about it on
the internet.
It makes me wonder if there is an alternative which has superceeded it
(I see oprofile, but it looks a good deal more difficult to use).
message above it seems sprof cannot find your library because it is
not in the default library search path. Try this:
$ LD_LIBRARY_PATH=. sprof libmy.so /var/tmp/libmy.so.profile
Let us know how that goes.
No luck with that, I'm afraid:
$ LD_LIBRARY_PATH=. sprof libmy.so /var/tmp/libmy.so.profile
sprof: failed to load shared object `libmy.so'
I've tried all sorts to try and coax the program to accept the files - I
wonder if it might not just be an unhelpful error message and something
else is failing. I have a strace here in case anyone can understand what
is going on (is it some locale setting that it doesn't like, perhaps, I
don't know much about that stuff - it doesn't seem to attempt to open
anything like libmy.so at all):
execve("/usr/bin/sprof", ["sprof", "libmy.so",
"/var/tmp/libmy.so.profile"], [/* 39 vars */]) = 0
brk(0) = 0x8c78000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fd7000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
open("/usr/lib/xorg/tls/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/xorg/tls/i686/sse2", 0xbf83ced8) = -1 ENOENT (No such
file or directory)
open("/usr/lib/xorg/tls/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/xorg/tls/i686", 0xbf83ced8) = -1 ENOENT (No such file
or directory)
open("/usr/lib/xorg/tls/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/xorg/tls/sse2", 0xbf83ced8) = -1 ENOENT (No such file
or directory)
open("/usr/lib/xorg/tls/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/usr/lib/xorg/tls", 0xbf83ced8) = -1 ENOENT (No such file or
directory)
open("/usr/lib/xorg/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/usr/lib/xorg/i686/sse2", 0xbf83ced8) = -1 ENOENT (No such file
or directory)
open("/usr/lib/xorg/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/xorg/i686", 0xbf83ced8) = -1 ENOENT (No such file or
directory)
open("/usr/lib/xorg/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/usr/lib/xorg/sse2", 0xbf83ced8) = -1 ENOENT (No such file or
directory)
open("/usr/lib/xorg/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/usr/lib/xorg", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=80005, ...}) = 0
mmap2(NULL, 80005, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc3000
close(3) = 0
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PJ\251\0004\0\0\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=16428, ...}) = 0
mmap2(0xa94000, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
3, 0) = 0xa94000
mmap2(0xa96000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xa96000
close(3) = 0
open("/usr/lib/xorg/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\277\223\0004\0\0\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1597968, ...}) = 0
mmap2(0x926000, 1320356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
3, 0) = 0x926000
mmap2(0xa63000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13c) = 0xa63000
mmap2(0xa66000, 9636, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xa66000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fc2000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fc26c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xa96000, 4096, PROT_READ) = 0
mprotect(0xa63000, 8192, PROT_READ) = 0
mprotect(0x922000, 4096, PROT_READ) = 0
munmap(0xb7fc3000, 80005) = 0
brk(0) = 0x8c78000
brk(0x8c99000) = 0x8c99000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=56454464, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7dc2000
mmap2(NULL, 884736, PROT_READ, MAP_PRIVATE, 3, 0x1e1) = 0xb7cea000
mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x6d1) = 0xb7ce9000
close(3) = 0
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2528, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7ce8000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2528
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7ce8000, 4096) = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
write(2, "sprof: ", 7sprof: ) = 7
write(2, "failed to load shared object `li"..., 39failed to load shared
object `libmy.so') = 39
write(2, "\n", 1
) = 1
exit_group(1) = ?
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos
[Index of Archives]
[CentOS]
[CentOS Announce]
[CentOS Development]
[CentOS ARM Devel]
[CentOS Docs]
[CentOS Virtualization]
[Carrier Grade Linux]
[Linux Media]
[Asterisk]
[DCCP]
[Netdev]
[Xorg]
[Linux USB]
|