From: <sv...@va...> - 2008-06-15 13:04:46
|
Author: cerion Date: 2008-06-15 14:04:52 +0100 (Sun, 15 Jun 2008) New Revision: 437 Log: - Update supported Valgrind version: >=3.3.0 - reverse r423,424 - complete backwards compatibility is unmaintainable. - Update supported valgrind flags: + --child-silent-after-fork=no|yes omit child output between fork & exec - --log-file=<file> log messages to <file>.<pid> - --log-file-exactly=<file> log messages to <file> - --log-file-qualifier=<VAR> incorporate $VAR in logfile name [none] + --log-file=<file> log messages to <file> Modified: trunk/configure.in trunk/doc/introduction.html trunk/doc/vg-manual-core.html trunk/doc/xml/introduction.xml trunk/valkyrie/core/memcheck_object.cpp trunk/valkyrie/core/valgrind_object.cpp trunk/valkyrie/core/valgrind_object.h trunk/valkyrie/core/valkyrie_object.cpp trunk/valkyrie/help/html_urls.cpp trunk/valkyrie/help/html_urls.h trunk/valkyrie/options/valgrind_options_page.cpp trunk/valkyrie/vk_utils.cpp trunk/valkyrie/vk_utils.h Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/configure.in 2008-06-15 13:04:52 UTC (rev 437) @@ -49,8 +49,9 @@ AC_MSG_WARN([Valgrind not found: may be configured at runtime.]) else # Valgrind found: check is ok - AC_MSG_CHECKING([valgrind version (need >= 3.0.0)]) - VG_VERSION_MAJOR_MIN=3 + AC_MSG_CHECKING([valgrind version (need >= 3.3.0)]) + VG_VERSION_MIN1=3 + VG_VERSION_MIN2=3 VG_VERSION=`$VALGRIND --version | sed "s/^valgrind-//"` if test x"$VG_VERSION" = x; then # failed to start valgrind @@ -58,10 +59,12 @@ VALGRIND="" else AC_MSG_RESULT([$VG_VERSION]) - VG_VERSION_MAJOR=`echo $VG_VERSION | sed "s/^\([[0-9\]]*\)\..*/\1/"` - if test $VG_VERSION_MAJOR -lt $VG_VERSION_MAJOR_MIN ; then + VG_VERSION_1=`echo $VG_VERSION | sed "s/^\([[0-9]]\+\)\..*/\1/"` + VG_VERSION_2=`echo $VG_VERSION | sed "s/^[[0-9]]\+\.\([[0-9]]\+\)\..*/\1/"` + if { test $VG_VERSION_1 -lt $VG_VERSION_MIN1 || \ + test $VG_VERSION_2 -lt $VG_VERSION_MIN2; }; then VALGRIND="" - AC_MSG_WARN([Not configuring for valgrind: need minimum version of 3.0.0. Please configure with a more recent version of Valgrind (may be done at runtime).]) + AC_MSG_WARN([Not configuring for valgrind: need minimum version of 3.3.0. Please configure with a more recent version of Valgrind (may be done at runtime).]) fi fi fi Modified: trunk/doc/introduction.html =================================================================== --- trunk/doc/introduction.html 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/doc/introduction.html 2008-06-15 13:04:52 UTC (rev 437) @@ -37,15 +37,15 @@ <div></div> </div> <p>Valkyrie is a graphical front-end to the Valgrind suite of tools for -debugging and profiling Linux executables. Valgrind versions from 3.0.0 -(the first release to output XML) are supported. Currently, the -only supported Valgrind tool is Memcheck.</p> +debugging and profiling Linux executables. The current version supports +Valgrind from version 3.3.0. Currently, the only supported Valgrind tool +is Memcheck.</p> <p>Valkyrie uses the Qt widget library, and should run on most reasonably recent Linux setups. The only sine qua non is that you must have:</p> <div class="itemizedlist"><ul type="bullet"> <li style="list-style-type: disc"><p>Qt v.3.2.0 or higher (but not Qt v.4 as yet), and</p></li> -<li style="list-style-type: disc"><p>Valgrind v.3.0.0 or higher.</p></li> +<li style="list-style-type: disc"><p>Valgrind v.3.3.0 or higher.</p></li> </ul></div> <p>Valkyrie also contains a program <span><b class="command">vk_logmerge</b></span>. Given multiple log files (in xml format) generated by multiple runs on Modified: trunk/doc/vg-manual-core.html =================================================================== --- trunk/doc/vg-manual-core.html 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/doc/vg-manual-core.html 2008-06-15 13:04:52 UTC (rev 437) @@ -588,6 +588,14 @@ disabled by default.</p> </li> <li> +<p><a name="silent_child"></a><code class="computeroutput">--child-silent-after-fork=yes</code> + [default]</p> +<p><code class="computeroutput">--child-silent-after-fork=yes</code></p> +<p>When enabled, Valgrind will omit child output between fork + and exec. This is normally disabled in Valgrind, but it + must be enabled for clean XML, which Valkyrie requires.</p> +</li> +<li> <p><a name="track_fds"></a><code class="computeroutput">--track-fds=no</code> [default]</p> <p><code class="computeroutput">--track-fds=yes</code></p> <p>When enabled, Valgrind will print out a list of open @@ -613,33 +621,13 @@ interfere with the client's own use of stderr.</p> </li> <li> -<p><a name="log2file_pid"></a><code class="computeroutput">--log-file=<filename></code></p> -<p>Specifies that Valgrind should send all of its messages - to the specified file. In fact, the file name used is - created by concatenating the text - <code class="computeroutput">filename</code>, "." and the - process ID, so as to create a file per process. The - specified file name may not be the empty string.</p> +<p><a name="log2file"></a><code class="computeroutput">--log-file=<filename></code></p> +<p>Specifies that Valgrind should send all of its messages to + the specified file. The specified file name may not be an + empty string. If you trace multiple processes with Valgrind + when using this option the log file may get all messed up. </li> <li> -<p><a name="log2file"></a><code class="computeroutput">--log-file-exactly=<filename></code></p> -<p>Just like <code class="computeroutput">--log-file</code>, but - the "." suffix is not added. If you trace multiple processes - with Valgrind when using this option the log file may get all messed - up. - </p> -</li> -<li> -<p><a name="log2file_qualifier"></a><code class="computeroutput">--log-file-qualifer=<VAR></code></p> -<p>When used in conjunction with - <code class="computeroutput">--log-file=</code>, causes the log file - name to be qualified using the contents of environment variable - <code class="computeroutput">VAR</code>. This is useful when running - MPI programs. - For further details, see <a href="manual-core.html#manual-core.comment">The commentary</a>. - </p> -</li> -<li> <p><a name="log2socket"></a><code class="computeroutput">--log-socket=<ip-address:port-number></code></p> <p>Specifies that Valgrind should send all of its messages to the specified port at the specified IP address. The port Modified: trunk/doc/xml/introduction.xml =================================================================== --- trunk/doc/xml/introduction.xml 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/doc/xml/introduction.xml 2008-06-15 13:04:52 UTC (rev 437) @@ -9,16 +9,16 @@ <title>An Overview of Valkyrie</title> <para>Valkyrie is a graphical front-end to the Valgrind suite of tools for -debugging and profiling Linux executables. Valgrind versions from 3.0.0 -(the first release to output XML) are supported. Currently, the -only supported Valgrind tool is Memcheck.</para> +debugging and profiling Linux executables. The current version supports +Valgrind from version 3.3.0. Currently, the only supported Valgrind tool +is Memcheck.</para> <para>Valkyrie uses the Qt widget library, and should run on most reasonably recent Linux setups. The only sine qua non is that you must have:</para> <itemizedlist mark='bullet'> <listitem><para>Qt v.3.2.0 or higher (but not Qt v.4 as yet), and</para></listitem> - <listitem><para>Valgrind v.3.0.0 or higher.</para></listitem> + <listitem><para>Valgrind v.3.3.0 or higher.</para></listitem> </itemizedlist> Modified: trunk/valkyrie/core/memcheck_object.cpp =================================================================== --- trunk/valkyrie/core/memcheck_object.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/core/memcheck_object.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -333,38 +333,15 @@ { m_saveFname = vk_mkstemp( QString( VK_LOGS_DIR ) + "mc_log", "xml" ); vk_assert( !m_saveFname.isEmpty() ); - - /* check valgrind version: - - supported version - - version dependent code - */ - int v1=0, v2=0, v3=0; - bool ok = Valgrind::getVersionBinary( vgflags.first(), v1, v2, v3 ); - if ( !ok ) { - vkError( view(), "Valgrind start error", - "Failure running valgrind version test" ); - } else { - // valgrind version dependent code - QString log_param; - - if ( v1 == 3 && v2 < 3 ) { // < 3.3.0 - log_param = "--log-file-exactly="; - } else { // >= 3.3.0 - log_param = "--log-file="; - } - log_param += m_saveFname; - - vgflags.insert( ++(vgflags.begin()), log_param ); - } - - if ( ok ) { - setRunState( VkRunState::VALGRIND ); - m_fileSaved = false; - statusMsg( "Memcheck", "Running ... " ); - - ok = startProcess( vgflags ); - } + vgflags.insert( ++(vgflags.begin()), ("--log-file=" + m_saveFname) ); + + setRunState( VkRunState::VALGRIND ); + m_fileSaved = false; + statusMsg( "Memcheck", "Running ... " ); + + bool ok = startProcess( vgflags ); + if (!ok) { statusMsg( "Memcheck", "Failed" ); m_fileSaved = true; Modified: trunk/valkyrie/core/valgrind_object.cpp =================================================================== --- trunk/valkyrie/core/valgrind_object.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/core/valgrind_object.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -56,8 +56,14 @@ "valgrind", '\0', "trace-children", "<yes|no>", "yes|no", "no", "Trace child processes: ", - "Valgrind-ise child processes?", + "Valgrind-ise child processes (follow execve)?", urlVgCore::traceChild ); + addOpt( SILENT_CH, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, + "valgrind", '\0', "child-silent-after-fork", + "<yes|no>", "yes|no", "yes", /* currently necessary for clean XML output */ + "Omit child output between fork and exec: ", + "omit child output between fork & exec?", + urlVgCore::silentChild ); addOpt( TRACK_FDS, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, "valgrind", '\0', "track-fds", "<yes|no>", "yes|no", "no", @@ -76,23 +82,12 @@ "Log to file descriptor:", "log messages to file descriptor (1=stdout, 2=stderr)", urlVgCore::logToFd ); - addOpt( LOG_PID, VkOPTION::ARG_STRING, VkOPTION::WDG_LEDIT, - "valgrind", '\0', "log-file", + addOpt( LOG_FILE, VkOPTION::ARG_STRING, VkOPTION::WDG_LEDIT, + "valgrind", '\0', "log-file", "<file>", "", "", - "Log to <file>.pid<pid>:", - "Log messages to <file>.pid<pid>", - urlVgCore::logToFilePid ); - addOpt( LOG_FILE, VkOPTION::ARG_STRING, VkOPTION::WDG_LEDIT, - "valgrind", '\0', "log-file-exactly", - "<file>", "", "", "Log to file:", "log messages to <file>", urlVgCore::logToFile ); - addOpt( LOG_QUAL, VkOPTION::ARG_STRING, VkOPTION::WDG_NONE, - "valgrind", '\0', "log-file-qualifier", - "VAR", "", "", - "<VAR>", "incorporate $VAR in logfile name", - urlVgCore::logFileQual ); addOpt( LOG_SOCKET, VkOPTION::ARG_STRING, VkOPTION::WDG_LEDIT, "valgrind", '\0', "log-socket", "<ipaddr:port>", "", "", @@ -326,6 +321,13 @@ #endif } break; + case SILENT_CH: { + /* Disabled for now - output between fork and exec is confusing for the XML output */ + /* Note: Also disabled in ValgrindOptionsPage() */ + errval = PERROR_BADOPT; + vkPrintErr("Option disabled '--%s'", opt->m_longFlag.latin1()); + vkPrintErr(" - Necessary, to get clean XML output from Valgrind."); + } break; case XML_OUTPUT: /* Note: gui option disabled, so only reaches here from cmdline */ @@ -362,8 +364,6 @@ all logging options are therefore ignored */ case LOG_FILE: case LOG_FD: - case LOG_PID: - case LOG_QUAL: case LOG_SOCKET: /* Note: gui options disabled, so only reaches here from cmdline */ errval = PERROR_BADOPT; @@ -431,6 +431,15 @@ modFlags << "--" + opt->cfgKey() + "=" + cfgVal; break; + /* for memcheck we needs this enabled to keep the xml clean */ + case SILENT_CH: + if ( tool_obj->name() == "memcheck") + modFlags << "--" + opt->cfgKey() + "=yes"; + else + if ( defVal != cfgVal ) + modFlags << "--" + opt->cfgKey() + "=" + cfgVal; + break; + case VERBOSITY: case TRACK_FDS: case TIME_STAMP: @@ -455,8 +464,6 @@ all logging options should therefore not be used */ case LOG_FILE: case LOG_FD: - case LOG_PID: - case LOG_QUAL: case LOG_SOCKET: /* ignore these opts */ break; @@ -474,63 +481,6 @@ -/* Get valgrind version */ -bool Valgrind::getVersionBinary( QString& vg_bin, int& v1, int& v2, int& v3 ) -{ - bool ok = true; - QString vg_version; - - QString exec = vg_bin + " --version | sed 's/^valgrind-//'"; - FILE* fd = popen( exec.latin1(), "r"); - if (!fd) { // start error? - perror("popen"); - ok = false; - vkPrintErr( "Valgrind start error: Failure starting valgrind version test" ); - } else { - char buf[1024]; - fgets(buf, sizeof(buf), fd); - vg_version = buf; - vg_version = vg_version.left( vg_version.length() - 1 ); - - int result = pclose(fd); - if ( !WIFEXITED( result ) ) { // exit error? - ok = false; - vkPrintErr( "Valgrind start error: Failure running valgrind version test" ); - } - } - - if ( ok ) { - // parse valgrind version - QStringList slst_vg_ver = QStringList::split( '.', vg_version ); - if ( slst_vg_ver.count() != 3 ) { - ok = false; - } - if ( ok ) { - v1 = slst_vg_ver[0].toUInt( &ok ); - } - if ( ok ) { - v2 = slst_vg_ver[1].toUInt( &ok ); - } - if ( ok ) { - v3 = slst_vg_ver[2].toUInt( &ok ); - } - if ( !ok ) { - vkPrintErr( "Valgrind start error: Failure reading valgrind version: '%s'", - vg_version.latin1() ); - } else { - // check version supported - if ( v1 < 3 ) { // < 3.0.0: unsupported - ok = false; - vkPrintErr( "Valgrind start error: Unsupported version: %s < 3.0.0", - vg_version.latin1() ); - } - } - } - return ok; -} - - - /* Register tools */ void Valgrind::initToolObjects() { Modified: trunk/valkyrie/core/valgrind_object.h =================================================================== --- trunk/valkyrie/core/valgrind_object.h 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/core/valgrind_object.h 2008-06-15 13:04:52 UTC (rev 437) @@ -36,12 +36,11 @@ /* common options relevant to all tools */ VERBOSITY, // --verbosity TRACE_CH, // --trace-children + SILENT_CH, // --child-silent-after-fork TRACK_FDS, // --track-fds TIME_STAMP, // --time-stamp LOG_FD, // --log-fd - LOG_PID, // --log-file - LOG_FILE, // --log-file-exactly - LOG_QUAL, // --log-file-qualifier + LOG_FILE, // --log-file LOG_SOCKET, // --log-socket /* uncommon options relevant to all tools */ @@ -85,9 +84,6 @@ ToolObject* toolObj( int tid ); ToolObject* toolObj( const QString& name ); - /* Get valgrind version */ - static bool getVersionBinary( QString& vg_bin, int& v1, int& v2, int& v3 ); - private: /* creates the various VkObjects and initialises their options, ready for cmd-line parsing (if any). */ Modified: trunk/valkyrie/core/valkyrie_object.cpp =================================================================== --- trunk/valkyrie/core/valkyrie_object.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/core/valkyrie_object.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -24,7 +24,10 @@ #include <qapplication.h> + // Minimum version of Valgrind required +const char* pchVersionVgMin = "3.3.0"; + /* class Valkyrie --------------------------------------------------- */ Valkyrie:: ~Valkyrie() { @@ -195,14 +198,25 @@ return PERROR_BADFILE; } fgets( line, sizeof(line), fp ); - pclose(fp); + int result = pclose(fp); + if ( !WIFEXITED( result ) ) { // cmd exit error? + return PERROR_BADFILE; + } + QString vg_version = QString(line).simplifyWhiteSpace(); - if ( !vg_version.startsWith("valgrind") ) + if ( !vg_version.startsWith("valgrind") ) { return PERROR_BADFILE; + } /* compare with minimum req'd version: */ - if ( str2hex(vg_version) < str2hex("3.0.0") ) + int versionVg = strVersion2hex( vg_version ); + int versionVgReqd = strVersion2hex( pchVersionVgMin ); + if ( versionVg == -1 || versionVgReqd == -1) { + return PERROR_BADFILE; + } + if ( versionVg < versionVgReqd ) { return PERROR_BADVERSION; + } /* looking good... */ } break; Modified: trunk/valkyrie/help/html_urls.cpp =================================================================== --- trunk/valkyrie/help/html_urls.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/help/html_urls.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -71,6 +71,7 @@ const char* mainTool = "vg-manual-core.html#tool_name"; const char* verbosity = "vg-manual-core.html#verbosity"; const char* traceChild = "vg-manual-core.html#trace_children"; + const char* silentChild = "vg-manual-core.html#silent_child"; const char* trackFds = "vg-manual-core.html#track_fds"; const char* timeStamp = "vg-manual-core.html#time_stamp"; const char* xmlOutput = "vg-manual-core.html#xml_output"; @@ -83,9 +84,7 @@ /* valgrind's options page: tab Error Reporting */ const char* logToFd = "vg-manual-core.html#log2fd"; - const char* logToFilePid = "vg-manual-core.html#log2file_pid"; const char* logToFile = "vg-manual-core.html#log2file"; - const char* logFileQual = "vg-manual-core.html#log2file_qualifier"; const char* logToSocket = "vg-manual-core.html#log2socket"; const char* autoDemangle = "vg-manual-core.html#auto_demangle"; const char* numCallers = "vg-manual-core.html#num_callers"; Modified: trunk/valkyrie/help/html_urls.h =================================================================== --- trunk/valkyrie/help/html_urls.h 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/help/html_urls.h 2008-06-15 13:04:52 UTC (rev 437) @@ -69,6 +69,7 @@ extern const char* xmlOutput; extern const char* xmlComment; extern const char* traceChild; + extern const char* silentChild; extern const char* trackFds; extern const char* timeStamp; extern const char* freeGlibc; @@ -87,10 +88,8 @@ extern const char* whichDebugger; extern const char* inputFd; extern const char* logToFd; - extern const char* logToFilePid; extern const char* logToFile; extern const char* logToSocket; - extern const char* logFileQual; /* only used by Memcheck and Massif */ extern const char* Alignment; } Modified: trunk/valkyrie/options/valgrind_options_page.cpp =================================================================== --- trunk/valkyrie/options/valgrind_options_page.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/options/valgrind_options_page.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -55,7 +55,7 @@ QGroupBox* cgroup1 = new QGroupBox(" Common Options ", tabCore, "cgroup1"); core_vbox->addWidget( cgroup1, m_space ); /* tabCore - group box 1 - grid layout */ - int rows = 7; + int rows = 8; int cols = 2; QGridLayout* cgrid1 = new QGridLayout( cgroup1, rows, cols, m_margin, m_space ); #if (QT_VERSION-0 >= 0x030200) @@ -73,6 +73,8 @@ optionWidget( Valgrind::XML_OUTPUT, cgroup1, false ) ); m_itemList.insert( Valgrind::TRACE_CH, /* checkbox */ optionWidget( Valgrind::TRACE_CH, cgroup1, false ) ); + m_itemList.insert( Valgrind::SILENT_CH, /* checkbox */ + optionWidget( Valgrind::SILENT_CH, cgroup1, false ) ); m_itemList.insert( Valgrind::TRACK_FDS, /* checkbox */ optionWidget( Valgrind::TRACK_FDS, cgroup1, false ) ); m_itemList.insert( Valgrind::TIME_STAMP, /* checkbox */ @@ -82,8 +84,9 @@ cgrid1->addLayout( m_itemList[Valgrind::VERBOSITY ]->hlayout(), 2, 0 ); cgrid1->addWidget( m_itemList[Valgrind::XML_OUTPUT]->widget(), 3, 0 ); cgrid1->addWidget( m_itemList[Valgrind::TRACE_CH ]->widget(), 4, 0 ); - cgrid1->addWidget( m_itemList[Valgrind::TRACK_FDS ]->widget(), 5, 0 ); - cgrid1->addWidget( m_itemList[Valgrind::TIME_STAMP]->widget(), 6, 0 ); + cgrid1->addWidget( m_itemList[Valgrind::SILENT_CH ]->widget(), 5, 0 ); + cgrid1->addWidget( m_itemList[Valgrind::TRACK_FDS ]->widget(), 6, 0 ); + cgrid1->addWidget( m_itemList[Valgrind::TIME_STAMP]->widget(), 7, 0 ); /* tabCore - group box 2 */ @@ -133,7 +136,7 @@ QGroupBox* egroup1 = new QGroupBox( " Options ", tabErep, "egroup1" ); erep_vbox->addWidget( egroup1, m_space ); /* tabErep - group box 1 - grid layout */ - rows = 14; cols = 2; + rows = 13; cols = 2; QGridLayout* egrid1 = new QGridLayout( egroup1, rows, cols, m_margin, m_space ); #if (QT_VERSION-0 >= 0x030200) egrid1->setRowSpacing( 0, m_topSpace ); /* blank top row */ @@ -165,8 +168,6 @@ optionWidget( Valgrind::INPUT_FD, egroup1, true ) ); m_itemList.insert( Valgrind::LOG_FD, /* spinbox */ optionWidget( Valgrind::LOG_FD, egroup1, true ) ); - m_itemList.insert( Valgrind::LOG_PID, /* ledit */ - optionWidget(Valgrind::LOG_PID, egroup1, true ) ); m_itemList.insert( Valgrind::LOG_FILE, /* ledit */ optionWidget(Valgrind::LOG_FILE, egroup1, true ) ); m_itemList.insert( Valgrind::LOG_SOCKET, /* ledit */ @@ -195,9 +196,8 @@ hBox->addLayout( m_itemList[Valgrind::LOG_FD]->hlayout() ); egrid1->addLayout( hBox, 10, 0 ); //------------ - egrid1->addLayout( m_itemList[Valgrind::LOG_PID ]->hlayout(), 11, 0 ); - egrid1->addLayout( m_itemList[Valgrind::LOG_FILE ]->hlayout(), 12, 0 ); - egrid1->addLayout( m_itemList[Valgrind::LOG_SOCKET ]->hlayout(), 13, 0 ); + egrid1->addLayout( m_itemList[Valgrind::LOG_FILE ]->hlayout(), 11, 0 ); + egrid1->addLayout( m_itemList[Valgrind::LOG_SOCKET ]->hlayout(), 12, 0 ); erep_vbox->addStretch( m_space ); @@ -259,10 +259,8 @@ with this. */ // error reporting tab m_itemList[Valgrind::LOG_FD ]->setEnabled( false ); - m_itemList[Valgrind::LOG_PID ]->setEnabled( false ); m_itemList[Valgrind::LOG_FILE ]->setEnabled( false ); m_itemList[Valgrind::LOG_SOCKET ]->setEnabled( false ); -// m_itemList[Valgrind::LOG_QUAL ]->setEnabled( false ); /* Disabled because Valkyrie always requires xml output from Valgrind */ m_itemList[Valgrind::XML_OUTPUT ]->setEnabled( false ); @@ -274,6 +272,10 @@ /* Note: Also disabled in Valgrind::checkOptArg() */ m_itemList[Valgrind::TRACE_CH ]->setEnabled( false ); + /* Disabled - must be left on to generate clean XML */ + /* Note: Also disabled in Valgrind::checkOptArg() */ + m_itemList[Valgrind::SILENT_CH ]->setEnabled( false ); + /* Disabled for now - not yet implemented */ m_itemList[Valgrind::INPUT_FD ]->setEnabled( false ); @@ -408,4 +410,3 @@ VG_CLO_MAX_SFILES ); } } - Modified: trunk/valkyrie/vk_utils.cpp =================================================================== --- trunk/valkyrie/vk_utils.cpp 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/vk_utils.cpp 2008-06-15 13:04:52 UTC (rev 437) @@ -143,10 +143,10 @@ /* Version check ------------------------------------------------------- - Given version string of "major.minor.patch" (e.g. 3.0.0), + Given version string of "major.minor.patch" (e.g. 3.3.0), hex version = (major << 16) + (minor << 8) + patch */ -int str2hex( QString ver_str ) +int strVersion2hex( QString ver_str ) { QRegExp rxver(".*(\\d{1,2})\\.(\\d{1,2})\\.(\\d{1,2}).*"); if ( rxver.search( ver_str ) == -1) Modified: trunk/valkyrie/vk_utils.h =================================================================== --- trunk/valkyrie/vk_utils.h 2008-06-14 20:30:51 UTC (rev 436) +++ trunk/valkyrie/vk_utils.h 2008-06-15 13:04:52 UTC (rev 437) @@ -85,8 +85,8 @@ /* create a unique filename -------------------------------------------- */ QString vk_mkstemp( QString filepath, QString ext=QString::null ); -/* 3.0.5 --> 0x030005 -------------------------------------------------- */ -int str2hex( QString ver_str ); +/* "valgrind 3.0.5" --> 0x030005 --------------------------------------- */ +int strVersion2hex( QString ver_str ); /* escape html entities * current list: '<', '>', '&' ----------------------------------------- */ |