<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
Hi, For the last day or two I having been trying to get Valgrind/Callgrind 3.6.1 to work on Centos Linux 5.5 using a simple Fibonacci C++ program(shown below). After compiling the program using g++ -g -o MatchUpAccurate MatchUpAccurate.cpp, we run: /home/frankc/DQTTest/valgrind-3.6.1/coregrind/valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes ./MatchUpAccurate.exe. Then we get an error message from callgrind(shown below).<BR>
<BR>
A programmer sent me an email showing me that my test program is profiled correctly on Ubuntu. I received an email from a programmer yesterday who thinks the reason that callgrind is not able to profile my C++ program on Centos Linux Version 5.5 is because of an libc conflict. <BR> "what is the version of libc on the host? Is it a vm or physical? I guess it is gonna be a ABI/version conflict of libc. If you cannot figure it out, just report it. Chances are, a dev will be able to tell you in 5 seconds."<BR> In order to determine what version of libc is on the Centos Linux 5.5 host, I tried: rpm -qa | grep glibc. The answer was: glibc-devel-2.5-49.el5_5.7 glibc-2.5-49.el5_5.7 glibc-headers-2.5-49.el5_5.7 glibc-common-2.5-49.el5.<BR>
<BR>
We were wondering if anyone has been able to run Valgrind/Callgrind 3.6.1 on Centos Linux 5.5? Thank you.<BR>
<BR>
// Callgrind error message<BR>
==18130== Callgrind, a call-graph generating cache profiler<BR>==18130== Copyright (C) 2002-2010, and GNU GPL'd, by Josef Weidendorfer et al.<BR>==18130== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info<BR>==18130== Command: ./MatchUpAccurate.exe<BR>==18130== <BR>--18130-- warning: Pentium 4 with 12 KB micro-op instruction trace cache<BR>--18130-- Simulating a 16 KB I-cache with 32 B lines<BR>==18130== For interactive control, run 'callgrind_control -h'.<BR>std::ios_base::Init::Init()<BR>BB# 215387<BR>Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && (jmp <= from->bb->cjmp_count)' failed.<BR>==18130== at 0x3801E4C8: report_and_quit (m_libcassert.c:193)<BR>==18130== by 0x3801E69C: vgPlain_assert_fail (m_libcassert.c:267)<BR>==18130== by 0x3800FCD9: vgCallgrind_get_jcc (jumps.c:164)<BR>==18130== by 0x38003534: vgCallgrind_push_call_stack (callstack.c:217)<BR>==18130== by 0x38001FDB: vgCallgrind_setup_bbcc (bbcc.c:844)<BR>==18130== by 0x6292A7E3: ???<BR>sched status:<BR>running_tid=1<BR>Thread 1: status = VgTs_Runnable<BR>==18130== at 0x3E30CB0: std::ios_base::Init::Init() (in /usr/lib/libstdc++.so.6.0.8)<BR>==18130== by 0x3EA0125: ??? (in /usr/lib/libstdc++.so.6.0.8)<BR>==18130== by 0x3E22BD0: ??? (in /usr/lib/libstdc++.so.6.0.8)<BR>==18130== by 0xAE2162: call_init (in /lib/ld-2.5.so)<BR>==18130== by 0xAE2272: _dl_init (in /lib/ld-2.5.so)<BR>==18130== by 0xAD484E: ??? (in /lib/ld-2.5.so)<BR> <BR>
// Test program MatchUpTest.cpp <BR>int fibonacci(int n){<BR> if (n == 0)<BR> return 0;<BR> else if (n == 1)<BR> return 1;<BR> else<BR> return fibonacci(n - 1) + fibonacci(n-2);<BR>}<BR>int main(int Argc_,char *Argv_[]) {<BR> <BR> fibonacci(10);<BR> return 1;<BR>}<BR>
<BR> </body>
</html>