You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
(2) |
Apr
(3) |
May
|
Jun
(45) |
Jul
(4) |
Aug
|
Sep
(7) |
Oct
(1) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(7) |
2010 |
Jan
(9) |
Feb
(5) |
Mar
(22) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
|
Sep
(22) |
Oct
(6) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(17) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Cerion Armour-B. <ce...@ke...> - 2009-12-09 18:21:07
|
Hi Fathi, I've moved this thread to the valgrind-valkyrie-dev list. Basic app framework is done, but still plenty to do: - options processing: commandline, read/write to config file. - static xml log parsing - internal xml model - xml view setup - valgrind process driver - incremental xml parsing -> feeding the internal xml model And all that x3 for the tools: memcheck | helgrind | ptrcheck. Am considering using XSD for the xml parsing and internal model, but that may be more work than it's worth. How's your Qt4? ;-) Regards, Cerion Fathi Boudra wrote: > On Mon, Dec 7, 2009 at 11:37 AM, Cerion <ce...@va...> wrote: > >> Valkyrie currently only supports Qt3. I'm working on the port to Qt4, >> but it's taking a while. >> > > nice. The work seems done in branches/valkyrie_qt4port. > what's the current status and what's missing ? > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > > |
From: <sv...@va...> - 2009-10-08 19:24:00
|
Author: cerion Date: 2009-10-08 20:23:37 +0100 (Thu, 08 Oct 2009) New Revision: 458 Log: REVIEW THIS! Long non-commited changes, needs good review Modified: branches/exec_start/src/core/memcheck_object.cpp branches/exec_start/src/core/memcheck_object.h branches/exec_start/src/core/tool_object.cpp branches/exec_start/src/core/tool_object.h branches/exec_start/src/core/valgrind_object.cpp Modified: branches/exec_start/src/core/memcheck_object.cpp =================================================================== --- branches/exec_start/src/core/memcheck_object.cpp 2009-02-21 11:03:47 UTC (rev 457) +++ branches/exec_start/src/core/memcheck_object.cpp 2009-10-08 19:23:37 UTC (rev 458) @@ -8,6 +8,10 @@ * See the file LICENSE.GPL for the full license details. */ +#include <sys/types.h> // fork +#include <unistd.h> // fork, exec +#include <string.h> // strcpy + #include "memcheck_object.h" #include "valkyrie_object.h" #include "vk_config.h" @@ -245,10 +249,7 @@ break; case Valkyrie::modeParseOutput: - proc->tryTerminate(); /* first ask nicely. */ - /* if proc still running after msec_timeout, terminate with prejudice */ - QTimer::singleShot( 2000, proc, SLOT( kill() ) ); // TODO: move N to config - + killProc(); // TODO?: if kill proc while we're i parseOutput(), we could get a segfault? break; @@ -401,21 +402,6 @@ } -/* if --vg-opt=<arg> was specified on the cmd-line, called by - valkyrie->runTool(); if set via the run-button in the gui, - then MainWindow::run() calls valkyrie->runTool(). */ -bool Memcheck::run( QStringList flags ) -{ - /* tell valkyrie what we are doing */ - emit setRunMode( Valkyrie::modeParseOutput ); - - /* Read from log_fd */ - int log_fd = vkConfig->rdInt( "log-fd", "valgrind" ); - - return runProcess( flags, log_fd, "mc_output" ); -} - - /* Run a VKProcess, as given by 'flags'. Listens to output on 'log_fd', loading this output to the toolView via xmlParser::loadItem(XmlOutput*). @@ -590,6 +576,184 @@ emitRunning( false ); } + + + + + + + +/* Can't call a member function directly, so go around the houses */ +void glbl_valgrind_handler( int vg_signum ) +{ + // fprintf(stderr, "glbl_valgrind_handler(%d)\n", vg_signum); + Memcheck* mc = (Memcheck*)vkConfig->vkObject( "memcheck" ); + mc->valgrind_handler( vg_signum ); +} + +/* set valgrindExited, so parseLogFileLive can quit on this */ +void Memcheck::valgrind_handler( int vg_signum ) +{ + /* We got a SIGCHLD + for now, assuming child is ready to terminate + TODO: deal with child SIGSTOP'ed etc + */ + + fprintf(stderr, "valgrind_handler(%d)\n", vg_signum); + valgrindExited = true; +} + +void Memcheck::parseLogFileLive( QString& logFname ) +{ + QFile logFile(logFname); + + if ( !logFile.open( IO_ReadOnly ) ) { + fprintf(stderr, "err opening file for reading"); + return; + } + + setupParser( true ); + + if ( !reader.parse( &source, true ) ) { + /* if we get here, it means either: + a) Output from valgrind run is bad + b) Output from vk_logmerge run is bad + - neither should happen, so die. + Not very nice, but output-to-date is saved in the auto-log file. + TODO: do sthng nicer here - but rem not to block this function! + */ + vk_assert_never_reached(); + } + + QTextStream stream( &logFile ); + while ( true ) { + QString line; + while ( !stream.atEnd() ) { + line = stream.readLine(); /* line of text excluding '\n' */ + + if (line.isNull()) /* last line for now... */ + break; + +#if 0//DEBUG_ON + fprintf(stderr, "V: %s\n", line.latin1()); +#endif + + // Forward line to xmlparser + source.setData( line ); + bool ok = reader.parseContinue(); + if ( !ok ) { + fprintf(stderr, "\nMemcheck::parseLogFileLive(%s): '%s'\n", + logFname.latin1(), line.latin1() ); + /* if we get here, it means either: + a) Output from valgrind run is bad + b) Output from vk_logmerge run is bad + - neither should happen, so die. + Not very nice, but output-to-date is saved in the auto-log file. + TODO: do sthng nicer here - but rem not to block this function! + */ + vk_assert_never_reached(); + } + + if (line == "</valgrindoutput>") + break; + } /* while ( !stream.atEnd ) */ + + /* SIGCHLD will reset this when valgrind done: */ + if (valgrindExited) { +#if 0//DEBUG_ON + fprintf(stderr, "Memcheck::parseLogFileLive(): valgrind finished\n"); +#endif + break; + } + /* or we might have found the last line already: */ + if (line == "</valgrindoutput>") { + break; + } + + /* so gui still lives (and stop button works!) */ + qApp->processEvents(); + + int millisec = 100; + usleep(millisec * 1000); // microseconds + } /* while (true) */ + + logFile.close(); + setupParser( false ); +} + + +/* if --vg-opt=<arg> was specified on the cmd-line, called by + valkyrie->runTool(); if set via the run-button in the gui, + then MainWindow::run() calls valkyrie->runTool(). */ +bool Memcheck::run( QStringList flags ) +{ + /* tell valkyrie what we are doing */ + emit setRunMode( Valkyrie::modeParseOutput ); + + /* TODO: scan flags for --log- options, and set logFname accordingly */ + QString logFname = vk_mkstemp( "mc_output", vkConfig->logsDir(), ".xml" ); + QString logOpt = "--log-file-exactly=" + logFname; + flags.insert( flags.at(1), logOpt ); + + char* valg_argv[flags.count()+1]; + unsigned int i; + for ( i=0; i<flags.count(); i++ ) { + valg_argv[i] = new char[flags[i].length() + 1]; + strcpy(valg_argv[i], flags[i].latin1()); + } + valg_argv[i] = NULL; + + /* fork */ + int pid = fork(); + if (pid < 0) { + vkError( this->view(), "Error", "<p>fork() failed:<br>%s</p>", + strerror(errno) ); + return false; + } + + if (pid == 0) { + /* child */ + + /* new valgrind process */ + execvp( flags[0].latin1(), valg_argv ); + + /* shouldn't reach here */ + vkError( this->view(), "Error", "<p>execvp failed on: <br>%s<br>%s</p>", + flags.join(" ").latin1(), strerror(errno) ); + return false; + } + + fileSaved = false; + emitRunning( true ); + valgrindExited = false; + saveFname = logFname; + + /* parent */ + valg_pid = pid; /* keep track of pid, so can control later */ + + /* we need to know when valgrind has finished. */ + signal(SIGCHLD, glbl_valgrind_handler ); + + /* go read the log, real-time */ + parseLogFileLive( logFname ); + + /* clean up valg_argv[] */ + for ( i=1; i<flags.count(); i++ ) { + delete valg_argv[i]; + } + + /* kill child, if alive */ + // killProc(); + + emitRunning( false ); + return true; +} + + + + + + /* brings up a fileSaveDialog until successfully saved, or user pressed Cancel. if fname.isEmpty, ask user for a name first. Modified: branches/exec_start/src/core/memcheck_object.h =================================================================== --- branches/exec_start/src/core/memcheck_object.h 2009-02-21 11:03:47 UTC (rev 457) +++ branches/exec_start/src/core/memcheck_object.h 2009-10-08 19:23:37 UTC (rev 458) @@ -63,6 +63,8 @@ bool fileSaveDialog( QString fname ); + void valgrind_handler( int vg_signum ); + public slots: void loadClientOutput( const QString&, int log_fd=-1 ); @@ -89,6 +91,8 @@ bool runProcess( QStringList flags, int log_fd, QString fbasename ); + void parseLogFileLive( QString& logFname ); + private: XMLParser* xmlParser; QXmlSimpleReader reader; Modified: branches/exec_start/src/core/tool_object.cpp =================================================================== --- branches/exec_start/src/core/tool_object.cpp 2009-02-21 11:03:47 UTC (rev 457) +++ branches/exec_start/src/core/tool_object.cpp 2009-10-08 19:23:37 UTC (rev 458) @@ -12,6 +12,9 @@ * See the file LICENSE.GPL for the full license details. */ +#include <sys/types.h> /* waitpid */ +#include <sys/wait.h> /* waitpid */ + #include "tool_object.h" #include "tool_view.h" #include "vk_config.h" @@ -32,6 +35,8 @@ { m_view = 0; proc = 0; + valgrindExited = false; + valg_pid = 0; is_Running = false; fileSaved = true; @@ -44,9 +49,20 @@ /* kill proc if it is running */ void ToolObject::killProc() { + if (valg_pid > 0) { // valid pid? + if (kill( valg_pid, SIGKILL ) == -1) { + perror("ToolObject::killProc()"); + return; + } + + /* TODO: sthng with SIGALRM to wait 2 secs, then kill(SIGKILL) */ + + valgrindExited = true; + valg_pid = 0; + } + if ( proc != 0 ) { if ( proc->isRunning() ) { - /* if this view is closed, don't leave the process running */ proc->tryTerminate(); QTimer::singleShot( 5000, proc, SLOT( kill() ) ); } Modified: branches/exec_start/src/core/tool_object.h =================================================================== --- branches/exec_start/src/core/tool_object.h 2009-02-21 11:03:47 UTC (rev 457) +++ branches/exec_start/src/core/tool_object.h 2009-10-08 19:23:37 UTC (rev 458) @@ -74,6 +74,9 @@ bool fileSaved; VKProcess* proc; + + bool valgrindExited; + int valg_pid; /* pid of valgrind process */ }; Modified: branches/exec_start/src/core/valgrind_object.cpp =================================================================== --- branches/exec_start/src/core/valgrind_object.cpp 2009-02-21 11:03:47 UTC (rev 457) +++ branches/exec_start/src/core/valgrind_object.cpp 2009-10-08 19:23:37 UTC (rev 458) @@ -329,9 +329,10 @@ } } break; - case LOG_PID: /* log to <file>.pid<pid> */ - case LOG_FILE: /* log to <file> */ +// case LOG_PID: /* log to <file>.pid<pid> */ +// case LOG_FILE: /* log to <file> */ case LOG_SOCKET: /* log to socket ipaddr:port */ + case LOG_FD: /* log to file descriptor */ break; case XML_OUTPUT: /* the sine qua non */ |
From: adu <ad...@na...> - 2009-09-22 14:21:37
|
Hi! First of all I want to thanks for such amazing program)) But there are still some problem/misunderstandings and etc )) First of all we have 3 links http://valgrind.org/downloads/guis.html http://www.open-works.net/projects/valkyrie.html http://valgrind.org/downloads/current.html The first 2 of 'em - are talking about 1.3.0 version even there is already 1.4.0! And (I hope very) soon there will be 1.5.0 version))) Maybe someone has to change all those places in one manner? Whereupon - here it is very difficult question - well, how much time (approximately of course) it is necessary to wait till the moment of release of the new version? I understand what all is relative - but nevertheless is here quite certain milestone? In the second: I suggest adding not only support for 3.5 version of valgrind but also introduce new feature in valkyrie itself: 1. Selecting of node of errors tree and to call context-menu. Which will contain (for now) only 1 item - <Copy error in clipboard>? And hereby we will have error as a 'plain formatted text' - we will have representation of current selected error from the global errors tree for a future using. For ex. I (as a Tester) can send to developers only small (but useful) piece of valgrind log. Because right now I HAVE TO create and to send ALL log. Of course such trick should work only with first-level nodes. 2. Filters for valgrind output in main window. Right now we can see (in situation with a real huge amount of errors) very loooooong error's listing in main window - and sometimes to open each kind of found error from this list and make something useful in source code for removing this error - is quit difficult because this list is very looong. BUT - If we had an opportunity to use Filter-system then we would reduce quantity of errors on the screen and the correction of mistakes would be more comfortable. I suggest making filters based on the basic fields of the xml structures describing one error: TAG <obj> - filters:["equal","contains", "starts with", "ends with"] TAG <fn> - filters:["equal","contains", "starts with", "ends with"] TAG <dir> - filters:["equal","contains", "starts with", "ends with"] TAG <file> - filters:["equal","contains", "starts with", "ends with"] And also - for more gobal tags like: TAG <kind> - filters:["equal"] {here should be only predefined list of error types} TAG <leakedbytes> - filters:["equal","more that", "less than", "from .. till .."] And final question: How I can suppress annoying STL errors?problems? Ex.: <frame> <ip>0x5AF17F4</ip> <obj>/usr/local/tools/gcc/gcc-3.2.3/lib/libstdc++.so.5.0.3</obj> <fn>std::string::append(char const*)</fn> <dir>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686- pc-linux-gnu/libstdc++-v3/src</dir> <file>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686 -pc-linux-gnu/libstdc++-v3/include/bits/char_traits.h</file> <line>135</line> </frame> Yes, I've read about .supp files but I don't have it on my comp. Only in valgrind dir I have few of 'em - but they not covering gcc and STL functions... Where I can find rather big && useful .supp files?? Regards, Anton |
From: <sv...@va...> - 2009-02-21 11:03:53
|
Author: sewardj Date: 2009-02-21 11:03:47 +0000 (Sat, 21 Feb 2009) New Revision: 457 Log: Create tags/VALKYRIE_1_4_0 from trunk r455. Added: tags/VALKYRIE_1_4_0/ Copied: tags/VALKYRIE_1_4_0 (from rev 455, trunk) Property changes on: tags/VALKYRIE_1_4_0 ___________________________________________________________________ Name: svn:ignore + aclocal.m4 autom4te.cache configure config.h config.h.in config.log config.status depcomp install-sh missing stamp-h1 Makefile Makefile.in Name: svn:mergeinfo + |
From: <sv...@va...> - 2009-02-21 11:02:43
|
Author: sewardj Date: 2009-02-21 11:02:32 +0000 (Sat, 21 Feb 2009) New Revision: 456 Log: Create branches/VALKYRIE_1_4_BRANCH from trunk r455. Added: branches/VALKYRIE_1_4_BRANCH/ Copied: branches/VALKYRIE_1_4_BRANCH (from rev 455, trunk) Property changes on: branches/VALKYRIE_1_4_BRANCH ___________________________________________________________________ Name: svn:ignore + aclocal.m4 autom4te.cache configure config.h config.h.in config.log config.status depcomp install-sh missing stamp-h1 Makefile Makefile.in Name: svn:mergeinfo + |
From: <sv...@va...> - 2009-02-21 11:00:55
|
Author: sewardj Date: 2009-02-21 11:00:43 +0000 (Sat, 21 Feb 2009) New Revision: 455 Log: Finalise 1.4.0. Modified: trunk/configure.in Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-02-11 14:53:15 UTC (rev 454) +++ trunk/configure.in 2009-02-21 11:00:43 UTC (rev 455) @@ -2,7 +2,7 @@ ######################################################################## # ? AC_PREREQ(2.59) -AC_INIT(Valkyrie, 1.4.0.SVN, in...@op...) +AC_INIT(Valkyrie, 1.4.0, in...@op...) AC_CONFIG_SRCDIR([valkyrie/main.cpp]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR(m4) |
From: <sv...@va...> - 2009-02-11 14:53:22
|
Author: sewardj Date: 2009-02-11 14:53:15 +0000 (Wed, 11 Feb 2009) New Revision: 454 Log: Make the temporary log file directory be per-user, rather than having one for all users. That is, instead of /tmp/valkyrie_logs, use /tmp/valkyrie_logs_<username>. There's no guarantee that a /tmp directory created by one user is writable by another; hence they need to be per-user. Modified: trunk/configure.in trunk/valkyrie/core/memcheck_object.cpp trunk/valkyrie/core/valkyrie_object.cpp trunk/valkyrie/vk_config.cpp trunk/valkyrie/vk_utils.cpp trunk/valkyrie/vk_utils.h Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/configure.in 2009-02-11 14:53:15 UTC (rev 454) @@ -200,7 +200,7 @@ AC_DEFINE_UNQUOTED(VK_CFG_DIR, ".$PACKAGE", [valkyrie config dir]) AC_DEFINE_UNQUOTED(VK_DBASE_DIR, "dbase/", [valkyrie config dbase dir]) AC_DEFINE_UNQUOTED(VK_SUPPS_DIR, "suppressions/", [valkyrie config supps dir]) -AC_DEFINE_UNQUOTED(VK_LOGS_DIR, "/tmp/valkyrie_logs/", [valkyrie config logs dir]) +AC_DEFINE_UNQUOTED(VK_LOGS_DIRP, "/tmp/valkyrie_logs_", [valkyrie config logs directory prefix]) # programs AC_DEFINE_UNQUOTED(BIN_VALGRIND, "$VALGRIND", [valgrind executable]) Modified: trunk/valkyrie/core/memcheck_object.cpp =================================================================== --- trunk/valkyrie/core/memcheck_object.cpp 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/valkyrie/core/memcheck_object.cpp 2009-02-11 14:53:15 UTC (rev 454) @@ -338,7 +338,8 @@ */ bool Memcheck::runValgrind( QStringList vgflags ) { - m_saveFname = vk_mkstemp( QString( VK_LOGS_DIR ) + "mc_log", "xml" ); + m_saveFname = vk_mkstemp( QString( get_VK_LOGS_DIR() ) + + "mc_log", "xml" ); vk_assert( !m_saveFname.isEmpty() ); vgflags.insert( ++(vgflags.begin()), ("--log-file=" + m_saveFname) ); @@ -421,7 +422,8 @@ QString fname_logList = vkConfig->rdEntry( "merge", "valkyrie" ); statusMsg( "Merging logs in file-list", fname_logList ); - m_saveFname = vk_mkstemp( QString( VK_LOGS_DIR ) + "mc_merged", "xml" ); + m_saveFname = vk_mkstemp( QString( get_VK_LOGS_DIR() ) + + "mc_merged", "xml" ); vk_assert( !m_saveFname.isEmpty() ); QStringList flags; Modified: trunk/valkyrie/core/valkyrie_object.cpp =================================================================== --- trunk/valkyrie/core/valkyrie_object.cpp 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/valkyrie/core/valkyrie_object.cpp 2009-02-11 14:53:15 UTC (rev 454) @@ -25,7 +25,7 @@ // Minimum version of Valgrind required -const char* pchVersionVgMin = "3.3.0"; +const char* pchVersionVgMin = "3.4.0"; /* class Valkyrie --------------------------------------------------- */ @@ -102,7 +102,7 @@ "Browser:", "", urlValkyrie::browser ); addOpt( DFLT_LOGDIR, VkOPTION::NOT_POPT, VkOPTION::WDG_LEDIT, "valkyrie", '\0', "default-logdir", - "", "", VK_LOGS_DIR, + "", "", get_VK_LOGS_DIR(), "Log Dir:", "", urlValkyrie::logDir ); addOpt( WORKING_DIR, VkOPTION::ARG_STRING, VkOPTION::WDG_LEDIT, "valkyrie", '\0', "working-dir", Modified: trunk/valkyrie/vk_config.cpp =================================================================== --- trunk/valkyrie/vk_config.cpp 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/valkyrie/vk_config.cpp 2009-02-11 14:53:15 UTC (rev 454) @@ -844,9 +844,10 @@ } } - /* Further, check for temporary log dir (VK_LOGS_DIR), make if !exists */ - if ( !QFile::exists( VK_LOGS_DIR ) ) { - if ( !checkRCEntry( VK_LOGS_DIR, vk) ) { + /* Further, check for temporary log dir (VK_LOGS_DIRP + username), + make if !exists */ + if ( !QFile::exists( get_VK_LOGS_DIR() ) ) { + if ( !checkRCEntry( get_VK_LOGS_DIR(), vk) ) { return false; } } Modified: trunk/valkyrie/vk_utils.cpp =================================================================== --- trunk/valkyrie/vk_utils.cpp 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/valkyrie/vk_utils.cpp 2009-02-11 14:53:15 UTC (rev 454) @@ -15,6 +15,7 @@ #include <stdarg.h> // va_start, va_end #include <sys/types.h> // getpid #include <unistd.h> // getpid +#include <pwd.h> // getpwuid #include <qapplication.h> #include <qfileinfo.h> @@ -142,6 +143,24 @@ } +/* Get the log directory associated with this user --------------------- */ +// Just do this once, and cache the results. +QString get_VK_LOGS_DIR () +{ + static QString res = NULL; + if (!res) { + pid_t me = getuid(); + struct passwd* pw = getpwuid( me ); + /* This should never fail. Is it worth trying to continue if it + does? I don't think so. */ + vk_assert(pw); + res = QString( VK_LOGS_DIRP ) + QString( pw->pw_name ) + "/"; + vk_assert(res); + } + return res; +} + + /* Version check ------------------------------------------------------- Given version string of "major.minor.patch" (e.g. 3.3.0), hex version = (major << 16) + (minor << 8) + patch Modified: trunk/valkyrie/vk_utils.h =================================================================== --- trunk/valkyrie/vk_utils.h 2009-01-17 12:46:04 UTC (rev 453) +++ trunk/valkyrie/vk_utils.h 2009-02-11 14:53:15 UTC (rev 454) @@ -85,6 +85,9 @@ /* create a unique filename -------------------------------------------- */ QString vk_mkstemp( QString filepath, QString ext=QString::null ); +/* Get the log directory associated with this user --------------------- */ +QString get_VK_LOGS_DIR (); + /* "valgrind 3.0.5" --> 0x030005 --------------------------------------- */ int strVersion2hex( QString ver_str ); |
From: <sv...@va...> - 2009-01-17 12:46:13
|
Author: sewardj Date: 2009-01-17 12:46:04 +0000 (Sat, 17 Jan 2009) New Revision: 453 Log: Fix up handling of errors where there is both an auxiliary stack and an origin stack; this previously caused an assertion failure. Modified: trunk/valkyrie/tool_views/vglogview.cpp Modified: trunk/valkyrie/tool_views/vglogview.cpp =================================================================== --- trunk/valkyrie/tool_views/vglogview.cpp 2009-01-07 10:55:37 UTC (rev 452) +++ trunk/valkyrie/tool_views/vglogview.cpp 2009-01-17 12:46:04 UTC (rev 453) @@ -506,40 +506,40 @@ stack_item1->setOpen( true ); after = stack_item1; - /* aux what */ + /* aux what & stack */ VgElement aux_what = elem.getFirstElem( "auxwhat" ); if ( ! aux_what.isNull() ) { VgOutputItem* aux_item = new VgOutputItem( this, after, aux_what ); aux_item->setText( aux_what.text() ); after = aux_item; + QDomElement aux_stack = aux_what.nextSibling().toElement(); + if ( ! aux_stack.isNull() ) { + VgElement auxstack = (VgElement&)aux_stack; + StackItem* si = new StackItem( this, after, auxstack ); + after = si; + si->setOpen(true); + } } - /* aux stack */ - QDomElement aux_stack = aux_what.nextSibling().toElement(); - if ( ! aux_stack.isNull() ) { - VgElement auxstack = (VgElement&)aux_stack; - new StackItem( this, after, auxstack ); - } - /* origin */ + /* origin & stack */ VgElement origin = elem.getFirstElem( "origin" ); if ( ! origin.isNull() ) { VgElement ori_what = origin.getFirstElem( "what" ); VgElement ori_stack = ori_what.getNextSibling(); - VgOutputItem* zzz_aux_item = new VgOutputItem( this, after, ori_what ); - zzz_aux_item->setText( ori_what.text() ); - after = zzz_aux_item; + VgOutputItem* ori_item = new VgOutputItem( this, after, ori_what ); + ori_item->setText( ori_what.text() ); + after = ori_item; - // } - // /* aux stack */ - // QDomElement aux_stack = aux_what.nextSibling().toElement(); - // if ( ! aux_stack.isNull() ) { StackItem* si = new StackItem( this, after, ori_stack ); si->setOpen(true); } - /* J sez there may be more than two stacks in the future .. */ - vk_assert( aux_stack.nextSibling().isNull() ); + /* We should really check that we've used up all the children at + this level. But that's difficult since we don't scan through + them from one end to another using any 'cursor' kind of + arrangement, so we can't easily check that the 'cursor' is at + the last sibling. */ } VgOutputItem::setOpen( open ); } |
From: <sv...@va...> - 2009-01-07 10:55:43
|
Author: sewardj Date: 2009-01-07 10:55:37 +0000 (Wed, 07 Jan 2009) New Revision: 452 Log: * bump version number * make the detection of Valgrind more strict. If no Valgrind is detected, or the version number is wrong, just stop. Modified: trunk/configure.in Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-01-06 22:16:52 UTC (rev 451) +++ trunk/configure.in 2009-01-07 10:55:37 UTC (rev 452) @@ -2,7 +2,7 @@ ######################################################################## # ? AC_PREREQ(2.59) -AC_INIT(Valkyrie, 1.3.0, in...@op...) +AC_INIT(Valkyrie, 1.4.0.SVN, in...@op...) AC_CONFIG_SRCDIR([valkyrie/main.cpp]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR(m4) @@ -46,7 +46,7 @@ if test x"$VALGRIND" = x ; then # Valgrind not found - AC_MSG_WARN([Valgrind not found: may be configured at runtime.]) + AC_MSG_ERROR([Valgrind not found.]) else # Valgrind found: check is ok AC_MSG_CHECKING([valgrind version (need >= 3.4.0)]) @@ -55,7 +55,7 @@ VG_VERSION=`$VALGRIND --version | sed "s/^valgrind-//"` if test x"$VG_VERSION" = x; then # failed to start valgrind - AC_MSG_WARN([Failed to start Valgrind. Please check your Valgrind installation. Valgrind path may be set at runtime.]) + AC_MSG_ERROR([Failed to start Valgrind. Please check your Valgrind installation.]) VALGRIND="" else AC_MSG_RESULT([$VG_VERSION]) @@ -64,7 +64,7 @@ if { test $VG_VERSION_1 -lt $VG_VERSION_MIN1 || \ test $VG_VERSION_2 -lt $VG_VERSION_MIN2; }; then VALGRIND="" - AC_MSG_ERROR([Not configuring for valgrind: need minimum version of 3.4.0. Please configure with a more recent version of Valgrind (may be done at runtime).]) + AC_MSG_ERROR([Not configuring for valgrind: need minimum version of 3.4.0.]) fi fi fi |
From: <sv...@va...> - 2009-01-06 22:16:55
|
Author: sewardj Date: 2009-01-06 22:16:52 +0000 (Tue, 06 Jan 2009) New Revision: 451 Log: Initial changes to support Valgrind 3.4.x: * configure.in: require Valgrind version 3.4.x, and fix a couple of quoting problems * support option --track-origins=yes|no [no] * remove option --undef-value-errors=yes|no [yes] * Memcheck::saveParsedOutput: don't use QDir::rename to move the logfile to its final destination, since that fails when src and dst are not in the same partition. Copy and delete the original instead. * Support XML Protocol 3 (Memcheck 3.4.x output). * New function VgElement::getNextSibling. * Allow arbitrary numbers of <logfilequalifier>s, not just one or zero (a Protocol 3 change) * Allow <origin> sections in error messages (a Protocol 3 change) Modified: trunk/valkyrie/core/memcheck_object.cpp trunk/valkyrie/core/memcheck_object.h trunk/valkyrie/help/html_urls.cpp trunk/valkyrie/help/html_urls.h trunk/valkyrie/options/memcheck_options_page.cpp trunk/valkyrie/tool_utils/vglog.cpp trunk/valkyrie/tool_utils/vglog.h trunk/valkyrie/tool_views/vglogview.cpp Modified: trunk/valkyrie/core/memcheck_object.cpp =================================================================== --- trunk/valkyrie/core/memcheck_object.cpp 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/core/memcheck_object.cpp 2009-01-06 22:16:52 UTC (rev 451) @@ -77,12 +77,18 @@ "Show reachable blocks in leak check", "show reachable blocks in leak check?", urlMemcheck::Showreach ); - addOpt( UNDEF_VAL, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, - "memcheck", '\0', "undef-value-errors", - "<yes|no>", "yes|no", "yes", - "Check for undefined value errors", - "check for undefined value errors?", - urlMemcheck::UndefVal ); + //addOpt( UNDEF_VAL, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, + // "memcheck", '\0', "undef-value-errors", + // "<yes|no>", "yes|no", "yes", + // "Check for undefined value errors", + // "check for undefined value errors?", + // urlMemcheck::UndefVal ); + addOpt( TRACK_ORI, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, + "memcheck", '\0', "track-origins", + "<yes|no>", "yes|no", "no", + "Show the origins of uninitialised values", + "show the origins of uninitialised values?", + urlMemcheck::TrackOri ); addOpt( PARTIAL, VkOPTION::ARG_BOOL, VkOPTION::WDG_CHECK, "memcheck", '\0', "partial-loads-ok", "<yes|no>", "yes|no", "no", @@ -91,7 +97,7 @@ urlMemcheck::Partial ); addOpt( FREELIST, VkOPTION::ARG_UINT, VkOPTION::WDG_LEDIT, "memcheck", '\0', "freelist-vol", - "<number>", "0|1000000000", "5000000", + "<number>", "0|1000000000", "10000000", "Volume of freed blocks queue:", "volume of freed blocks queue", urlMemcheck::Freelist ); @@ -124,7 +130,8 @@ case FREELIST: case LEAK_RES: case SHOW_REACH: - case UNDEF_VAL: + //case UNDEF_VAL: + case TRACK_ORI: case GCC_296: case ALIGNMENT: opt->isValidArg( &errval, argval ); @@ -704,11 +711,25 @@ bool ok; if (!m_fileSaved) { /* first save after a run, so just rename m_saveFname => fname */ - //vkPrint("renaming: '%s' -> '%s'", m_saveFname.latin1(), fname.latin1() ); - ok = QDir().rename( m_saveFname, fname ); + if (0) vkPrint("renaming: '%s' -> '%s'", + m_saveFname.latin1(), fname.latin1() ); + if (m_saveFname != fname) { + ok = FileCopy( m_saveFname, fname ); + if (ok) + ok = QDir().remove( m_saveFname ); + } else { + ok = true; // no need to do anything + } + // OLD: + //ok = QDir().rename( m_saveFname, fname ); + // but we can't just rename, because that fails when the src + // and dst files are in different partitions. The longwinded + // but more reliable solution is to copy and then delete the + // original. } else { /* we've saved once already: must now copy m_saveFname => fname */ - //vkPrint("copying: '%s' -> '%s'", m_saveFname.latin1(), fname.latin1() ); + if (0) vkPrint("copying: '%s' -> '%s'", + m_saveFname.latin1(), fname.latin1() ); ok = FileCopy( m_saveFname, fname ); } if (ok) { Modified: trunk/valkyrie/core/memcheck_object.h =================================================================== --- trunk/valkyrie/core/memcheck_object.h 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/core/memcheck_object.h 2009-01-06 22:16:52 UTC (rev 451) @@ -46,7 +46,8 @@ LEAK_CHECK, LEAK_RES, SHOW_REACH, - UNDEF_VAL, + //UNDEF_VAL, + TRACK_ORI, PARTIAL, FREELIST, GCC_296, Modified: trunk/valkyrie/help/html_urls.cpp =================================================================== --- trunk/valkyrie/help/html_urls.cpp 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/help/html_urls.cpp 2009-01-06 22:16:52 UTC (rev 451) @@ -49,7 +49,7 @@ const char* binFlags = "options_dialog.html#bin_flags"; const char* vgDir = "options_dialog.html#valgrind"; - /* valgrind`s options page: tab Suppressions */ + /* valgrind's options page: tab Suppressions */ const char* coreTab = "options_valgrind.html#core_tab"; const char* errorTab = "options_valgrind.html#error_tab"; const char* suppsTab = "options_valgrind.html#supps_tab"; @@ -106,7 +106,8 @@ const char* optsMC = "vg-manual-mc.html"; const char* Leakcheck = "vg-manual-mc.html#leakcheck"; const char* Showreach = "vg-manual-mc.html#showreach"; - const char* UndefVal = "vg-manual-mc.html#undefvalerrs"; + //const char* UndefVal = "vg-manual-mc.html#undefvalerrs"; + const char* TrackOri = "vg-manual-mc.html#undefvalerrs"; const char* Leakres = "vg-manual-mc.html#leakres"; const char* Freelist = "vg-manual-mc.html#freelist"; const char* gcc296 = "vg-manual-mc.html#gcc296"; Modified: trunk/valkyrie/help/html_urls.h =================================================================== --- trunk/valkyrie/help/html_urls.h 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/help/html_urls.h 2009-01-06 22:16:52 UTC (rev 451) @@ -103,7 +103,8 @@ extern const char* Leakcheck; extern const char* Leakres; extern const char* Showreach; - extern const char* UndefVal; + //extern const char* UndefVal; + extern const char* TrackOri; extern const char* gcc296; } Modified: trunk/valkyrie/options/memcheck_options_page.cpp =================================================================== --- trunk/valkyrie/options/memcheck_options_page.cpp 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/options/memcheck_options_page.cpp 2009-01-06 22:16:52 UTC (rev 451) @@ -37,8 +37,10 @@ optionWidget( Memcheck::LEAK_CHECK, group1, true ) ); m_itemList.insert( Memcheck::SHOW_REACH, /* checkbox */ optionWidget( Memcheck::SHOW_REACH, group1, false ) ); - m_itemList.insert( Memcheck::UNDEF_VAL, /* checkbox */ - optionWidget( Memcheck::UNDEF_VAL, group1, false ) ); + //m_itemList.insert( Memcheck::UNDEF_VAL, /* checkbox */ + // optionWidget( Memcheck::UNDEF_VAL, group1, false ) ); + m_itemList.insert( Memcheck::TRACK_ORI, /* checkbox */ + optionWidget( Memcheck::TRACK_ORI, group1, false ) ); m_itemList.insert( Memcheck::PARTIAL, /* checkbox */ optionWidget( Memcheck::PARTIAL, group1, false ) ); @@ -66,7 +68,7 @@ grid1->addLayout( m_itemList[Memcheck::LEAK_CHECK]->hlayout(), row++, 0 ); grid1->addWidget( m_itemList[Memcheck::SHOW_REACH]->widget(), row++, 0 ); - grid1->addWidget( m_itemList[Memcheck::UNDEF_VAL]->widget(), row++, 0 ); + //grid1->addWidget( m_itemList[Memcheck::UNDEF_VAL]->widget(), row++, 0 ); grid1->addMultiCellWidget( sep(group1,"sep1"), row,row, 0,1 ); #if (QT_VERSION-0 >= 0x030200) @@ -75,6 +77,7 @@ grid1->addRowSpacing( row++, m_topSpace ); /* add a bit more space here */ #endif + grid1->addWidget( m_itemList[Memcheck::TRACK_ORI]->widget(), row++, 0 ); grid1->addWidget( m_itemList[Memcheck::PARTIAL]->widget(), row++, 0 ); grid1->addWidget( m_itemList[Memcheck::GCC_296]->widget(), row++, 0 ); Modified: trunk/valkyrie/tool_utils/vglog.cpp =================================================================== --- trunk/valkyrie/tool_utils/vglog.cpp 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/tool_utils/vglog.cpp 2009-01-06 22:16:52 UTC (rev 451) @@ -112,6 +112,11 @@ return VgElement(); } +VgElement VgElement::getNextSibling() const +{ + QDomElement e = nextSibling().toElement(); + return (VgElement&)e; +} VgElement::ElemType VgElement::elemType() { @@ -574,7 +579,8 @@ switch ( type ) { case VgElement::PROTOCOL: - if ( elem.text() != "1" && elem.text() != "2" ) { + if ( elem.text() != "1" + && elem.text() != "2" && elem.text() != "3" ) { vklmPrintErr("VgLog::appendNode(): bad xml protocol version"); return false; } @@ -626,8 +632,18 @@ VgElement VgLog::tool() { return docroot().getFirstElem("tool"); } -VgElement VgLog::logqual() -{ return docroot().getFirstElem("logfilequalifier"); } +VgLogQualList VgLog::logquals() +{ + VgLogQualList list; + QDomElement e = docroot().firstChild().toElement(); + for ( ; !e.isNull(); e=e.nextSibling().toElement() ) { + if (e.tagName() == "logfilequalifier") { + VgLogQual lq = (VgLogQual&)e; + list.append( lq ); + } + } + return list; +} VgElement VgLog::comment() { return docroot().getFirstElem("usercomment"); } Modified: trunk/valkyrie/tool_utils/vglog.h =================================================================== --- trunk/valkyrie/tool_utils/vglog.h 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/tool_utils/vglog.h 2009-01-06 22:16:52 UTC (rev 451) @@ -27,8 +27,11 @@ class VgElement : public QDomElement { public: + // shouldn't the following two really be called + // getFirstChild and getLastChild? VgElement getFirstElem( QString tagname ) const; VgElement getLastElem( QString tagname ) const; + VgElement getNextSibling() const; bool isLeaf(); /* leaf functions */ @@ -70,6 +73,14 @@ }; /**********************************************************************/ +class VgLogQual : public VgElement +{ +public: +}; + +typedef QValueList<VgLogQual> VgLogQualList; + +/**********************************************************************/ class VgFrame : public VgElement { public: @@ -187,21 +198,21 @@ bool mergeLeakErrors( VgErrorList sLeakErrors ); public: - VgElement docroot(); /* document element: <valgrindoutput/> */ - VgElement protocol(); - VgPreamble preamble(); - VgElement pid(); - VgElement ppid(); - VgElement tool(); - VgElement logqual(); - VgElement comment(); - VgElement args(); - VgStatus status_beg(); - VgErrorList errors(); /* errors (non-leak) before status_end */ - VgErrCounts errorcounts(); /* last errcounts element */ - VgStatus status_end(); - VgSuppCounts suppcounts(); - VgErrorList leaks(); /* leak errors after status_end */ + VgElement docroot(); /* document element: <valgrindoutput/> */ + VgElement protocol(); + VgPreamble preamble(); + VgElement pid(); + VgElement ppid(); + VgElement tool(); + VgLogQualList logquals(); + VgElement comment(); + VgElement args(); + VgStatus status_beg(); + VgErrorList errors(); /* errors (non-leak) before status_end */ + VgErrCounts errorcounts(); /* last errcounts element */ + VgStatus status_end(); + VgSuppCounts suppcounts(); + VgErrorList leaks(); /* leak errors after status_end */ private: QDomDocument log; Modified: trunk/valkyrie/tool_views/vglogview.cpp =================================================================== --- trunk/valkyrie/tool_views/vglogview.cpp 2009-01-06 22:04:20 UTC (rev 450) +++ trunk/valkyrie/tool_views/vglogview.cpp 2009-01-06 22:16:52 UTC (rev 451) @@ -179,7 +179,7 @@ VK_DEBUG("can't read start-time string\n"); } } - else if (protocol == "2") { + else if (protocol == "2" || protocol == "3") { // Valgrind >= v3.1 outputs a count only /* start count */ ret = sscanf( stime.ascii(), "%d:%d:%d:%d.%4d", @@ -322,11 +322,13 @@ { if ( open && childCount() == 0 ) { VgOutputItem* after = 0; + + /* handle any number of log-file-qualifiers */ VgElement logqual = elem.getFirstElem("logfilequalifier"); - /* may / may not have log-file-qualifier */ - if ( ! logqual.isNull() ) { + while (!logqual.isNull() && logqual.tagName() == "logfilequalifier") { after = new LogQualItem( this, logqual ); after->setOpen( true ); + logqual = logqual.getNextSibling(); } VgElement comment = elem.getFirstElem("usercomment"); @@ -518,6 +520,24 @@ new StackItem( this, after, auxstack ); } + /* origin */ + VgElement origin = elem.getFirstElem( "origin" ); + if ( ! origin.isNull() ) { + VgElement ori_what = origin.getFirstElem( "what" ); + VgElement ori_stack = ori_what.getNextSibling(); + + VgOutputItem* zzz_aux_item = new VgOutputItem( this, after, ori_what ); + zzz_aux_item->setText( ori_what.text() ); + after = zzz_aux_item; + + // } + // /* aux stack */ + // QDomElement aux_stack = aux_what.nextSibling().toElement(); + // if ( ! aux_stack.isNull() ) { + StackItem* si = new StackItem( this, after, ori_stack ); + si->setOpen(true); + } + /* J sez there may be more than two stacks in the future .. */ vk_assert( aux_stack.nextSibling().isNull() ); } |
From: <sv...@va...> - 2009-01-06 22:12:16
|
Author: sewardj Date: 2009-01-06 22:04:20 +0000 (Tue, 06 Jan 2009) New Revision: 450 Log: Require Valgrind version 3.4.x, and fix a couple of quoting problems. Modified: trunk/configure.in Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-06-30 10:50:23 UTC (rev 449) +++ trunk/configure.in 2009-01-06 22:04:20 UTC (rev 450) @@ -49,9 +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.3.0)]) + AC_MSG_CHECKING([valgrind version (need >= 3.4.0)]) VG_VERSION_MIN1=3 - VG_VERSION_MIN2=3 + VG_VERSION_MIN2=4 VG_VERSION=`$VALGRIND --version | sed "s/^valgrind-//"` if test x"$VG_VERSION" = x; then # failed to start valgrind @@ -64,7 +64,7 @@ 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.3.0. Please configure with a more recent version of Valgrind (may be done at runtime).]) + AC_MSG_ERROR([Not configuring for valgrind: need minimum version of 3.4.0. Please configure with a more recent version of Valgrind (may be done at runtime).]) fi fi fi @@ -87,18 +87,18 @@ # if unknown editor, give warning VK_ED_NAME=`echo $VK_EDITOR | sed "s/.*\///" | sed "s/-.*//"` - if test "$VK_ED_NAME" != "emacs" && \ - test "$VK_ED_NAME" != "nedit" && \ - test "$VK_ED_NAME" != "gvim" && \ - test "$VK_ED_NAME" != "gview" && \ - test "$VK_ED_NAME" != "kate"; then + if test x"$VK_ED_NAME" != x"emacs" && \ + test x"$VK_ED_NAME" != x"nedit" && \ + test x"$VK_ED_NAME" != x"gvim" && \ + test x"$VK_ED_NAME" != x"gview" && \ + test x"$VK_ED_NAME" != x"kate"; then AC_MSG_WARN([Unknown editor '$withval'. If possible, set editor options in valkyrie to go to the target line-number, e.g. 'gvim +%n', where %n will be replaced with the line-number.]) fi ], [ # not given # flag not given: try $EDITOR if test x"$EDITOR" != x ; then - if test -x $EDITOR; then + if test -x "$EDITOR"; then # found absolute: just give msg AC_CHECK_FILE([$EDITOR]) VK_EDITOR=$EDITOR |
From: adu <ad...@na...> - 2008-10-15 09:50:39
|
Hi all! What do you think about adding in TODO list these improvements? 1. Selecting of node of errors tree and to call context-menu. Which will contain for now only 1 item - "Copy error in clipboard". And thereby we will have as a 'plain formatted text' - representation of current selected error in the errors tree. So I (as a Tester) can send to developers only small (but useful) piece of valgrind log. Because right now I HAVE TO create and to send ALL log. Of course such trick should work only with first-level nodes. 2. Adding of filtering feature for nodes of error tree. Right now all found errors are showing in this tree. But sometimes there are so many errors (different reasons - real problems, too drastic verbose level etc..) that this tree became too heavy. And to find and to open desirable node became more complex. But if we will introduce some filtering feature it can help a lot!!! Possible levels of tree nodes: All types Only StillReachable Only DefinetlyLost Only ... \ Only ... - -<list here all available types> Only ... / ============================================================================ == And about errors. If a will click "show source paths" button I will see something like that in error tree: <0xBFFA513: here_is_the_next_in_turn_stack_item>(/usr/local/nangate/samba/download/Redha t9/addons/gcc/gcc-3.2.3/gcc-build2/i686-pc-linux-gnu/libstdc++-v3/src//usr/l ocal/nangate/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686-pc- linux-gnu/libstdc++-v3/include/bits/char_traits.h) That's not true!! But I understand why I've got this string: In xml this line was described like that: <frame> <ip>0x5AF17F4</ip> <obj>/usr/local/tools/gcc/gcc-3.2.3/lib/libstdc++.so.5.0.3</obj> <fn>std::string::append(char const*)</fn> <dir>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686- pc-linux-gnu/libstdc++-v3/src</dir> <file>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686 -pc-linux-gnu/libstdc++-v3/include/bits/char_traits.h</file> <line>135</line> </frame> And all 2 tags contain wrong information: <dir>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686- pc-linux-gnu/libstdc++-v3/src</dir> <file>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686 -pc-linux-gnu/libstdc++-v3/include/bits/char_traits.h</file> Correct info IMHO should be like that: <dir>/usr/local/samba/download/Redhat9/addons/gcc/gcc-3.2.3/gcc-build2/i686- pc-linux-gnu/libstdc++-v3/include</dir> <file>bits/char_traits.h</file> And why button "show source paths" is not a trigger btn?? Because sometimes I want to see all paths but after 2 mins I want to reduce outputted info(to remove all full path). Right now I can't do that (( And final question: Definitely mentioned above memory problem IS NOT a problem)) How I can suppress these STL problems. Yes, I've read about .supp files but I don't have it on my comp. Only in valgrind dir I have few of 'em - but they not covering gcc and STL functions... Where I can find rather big && useful .supp files??? |
From: Cerion Armour-B. <ce...@ke...> - 2008-09-10 20:06:43
|
Ah, rightyho, I'll add this to the TODO list... Cheers, Cerion On Monday 08 Sep 2008, Anton Dudarenko wrote: > And more: If I will click on the button "Show non-default valgrind flags > for current tool" new subwindow will be opened (m_flagsLabel variable in > main_window.hxx source code handle this window). And the width of that > window is equal to the width of the biggest text. WHY??? Why there is no > Horizontal ScrollBar in that subWindow?? > In my case the length of such one string (all my additional flags) is much > more that the HOR. Resolution of my Screen. So even the maximized window > can't fit into the desktop size. > > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge Build the coolest Linux based applications with Moblin SDK & win > great prizes Grand prize is a trip for two to an Open Source event anywhere > in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Valgrind-Valkyrie-dev mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-valkyrie-dev |
From: Anton D. <ad...@na...> - 2008-09-08 12:10:01
|
And more: If I will click on the button "Show non-default valgrind flags for current tool" new subwindow will be opened (m_flagsLabel variable in main_window.hxx source code handle this window). And the width of that window is equal to the width of the biggest text. WHY??? Why there is no Horizontal ScrollBar in that subWindow?? In my case the length of such one string (all my additional flags) is much more that the HOR. Resolution of my Screen. So even the maximized window can't fit into the desktop size. |
From: Anton D. <ad...@na...> - 2008-09-08 12:05:13
|
Sorry, but I did not understand what YOU did not understand))) Yes, that patch now shows more reliable command line of MY tool. + −− /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser + −− --dtd /home/adu/dtds/Database_1_0.dtd --ini_file /home/adu/ini_files/LambdaINI.xml /home/adu/FileToParse.xml.gz –strategy 'Find all BR-like tags' --gui_mode The first node - is a path to Binary The second node - is a binary flags. All MY additional flags. Now all is OK. But what about cmdline of valgrind? Why there are still 6 nodes an ARGS tree??? --args: | + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml + −− --tool=memcheck + −− --child-silent-after-fork=yes + −− --xml=yes + −− --show-reachable=yes I thought after implementing of your patch I will see next picture: The same 2 nodes only. 1 - is a TOOL path. (Binary) 2 - its all flags. In one line. Something like this: + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml --tool=memcheck --child-silent-after-fork=yes --xml=yes --show-reachable=yes |
From: Julian S. <ju...@va...> - 2008-09-08 12:00:20
|
(this didn't make it to the list the first time) > + −− --strategy > + −− 'Find > + −− all > + −− BR-like > + −− tags' > + −− --gui_mode > > AND that’s wrong. I expected to see this: > > + −− --strategy 'Find all BR-like tags' Hmm. Could you try the following patch (from Lénaïc Huard) and see if it works? J Index: valkyrie/core/valkyrie_object.cpp =================================================================== --- valkyrie/core/valkyrie_object.cpp (révision 449) +++ valkyrie/core/valkyrie_object.cpp (copie de travail) @@ -333,7 +333,7 @@ /* see if there were any flags given for the binary */ opt = findOption( BIN_FLAGS ); cfgVal = vkConfig->rdEntry( opt->m_longFlag, name() ); - modFlags += QStringList::split(" ", cfgVal); + modFlags += QStringList::split("<NEXT_ARG>", cfgVal); } return modFlags; } Index: valkyrie/options/parse_cmd_args.cpp =================================================================== --- valkyrie/options/parse_cmd_args.cpp (révision 449) +++ valkyrie/options/parse_cmd_args.cpp (copie de travail) @@ -228,7 +228,7 @@ aList << args[i]; i++; } - QString flags = aList.join( " " ); + QString flags = aList.join( "<NEXT_ARG>" ); qs_argval = !flags.isNull() ? flags : ""; rc = vk->checkOptArg( Valkyrie::BIN_FLAGS, qs_argval ); |
From: Julian S. <ju...@va...> - 2008-09-08 12:00:11
|
(this didn't make it to the list the first time) On Monday 08 September 2008, Anton Dudarenko wrote: > Hmm, it helped. BUT in general it is a strange behavior: > Now I got this: > [...] > But in that case (regarding this version of patch) I expected to see this: > [...] Err, I don't understand. Please can you show more precisely which lines are wrong now. J |
From: Anton D. <ad...@na...> - 2008-09-08 11:38:21
|
Hmm, it helped. BUT in general it is a strange behavior: Now I got this: --args: | + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml + −− --tool=memcheck + −− --child-silent-after-fork=yes + −− --xml=yes + −− --show-reachable=yes + −− /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser + −− --dtd /home/adu/dtds/Database_1_0.dtd --ini_file /home/adu/ini_files/LambdaINI.xml /home/adu/FileToParse.xml.gz –strategy 'Find all BR-like tags' --gui_mode But in that case (regarding this version of patch) I expected to see this: --args: | + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml --tool=memcheck --child-silent-after-fork=yes --xml=yes --show-reachable=yes + −− /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser + −− --dtd /home/adu/dtds/Database_1_0.dtd --ini_file /home/adu/ini_files/LambdaINI.xml /home/adu/FileToParse.xml.gz –strategy 'Find all BR-like tags' --gui_mode So, we have any new patches? Ideas? |
From: Anton D. <ad...@na...> - 2008-09-08 10:45:09
|
Hi developers! I found 1 issue? Bug? I don’t know but at least it is rather nervous thing: My command line is: /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser --dtd /home/adu/dtds/Database_1_0.dtd --ini_file /home/adu/ini_files/LambdaINI.xml /home/adu/FileToParse.xml.gz --strategy 'Find all BR-like tags' --gui_mode Bolded parts – are the main parts of cmd. Symbol = we are not using in definitions of binary flags!! (it’s by customer design) And that what I’ve saw in valkyries’ GUI: *--args: | + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml + −− --tool=memcheck + −− --child-silent-after-fork=yes + −− --xml=yes + −− --show-reachable=yes + −− /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser + −− --dtd + −− /home/adu/dtds/Database_1_0.dtd + −− --ini_file + −− /home/adu/ini_files/LambdaINI.xml + −− /home/adu/FileToParse.xml.gz + −− --strategy + −− 'Find + −− all + −− BR-like + −− tags' + −− --gui_mode AND that’s wrong. I expected to see this: *--args: | + −− /usr/local/bin/valgrind-3.3.1/bin/valgrind + −− --log-file=/tmp/valkyrie-logs/<LOGNAME>.xml + −− --tool=memcheck + −− --child-silent-after-fork=yes + −− --xml=yes + −− --show-reachable=yes + −− /home/adu/proj/obj/bin/i386-linux-thread-multi/debug/XML_Parser + −− --dtd /home/adu/dtds/Database_1_0.dtd + −− --ini_file /home/adu/ini_files/LambdaINI.xml + −− /home/adu/FileToParse.xml.gz + −− --strategy 'Find all BR-like tags' + −− --gui_mode P.S. for binary flag --strategy 'Find all BR-like tags' Even if I will use symbol “ (double quotes) against ‘ (single quote) the result will be the same. Regards, Anton. _______________________________________________________________ The contents of this message, together with any attachments, are intended only for the use of the individual or entity to which they are addressed and contains information that is confidential and could be a trade secret of Nangate. If you are not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this message, or any attachment, is strictly prohibited. If you have received this message in error, please notify the original sender by return E-mail and delete this message, along with any attachments, from your computer. Thank you. |
From: Bill M. <bm...@ve...> - 2008-07-23 18:57:06
|
Thanks for the quick and helpful response. I just guessed at which qt to attempt to install. This time I used qt-x11-free-3.3.6, and ignored one link error. Then valkyrie configured and built successfully, and does something. Now I have to figure out how to use it! Thanks again, Bill Donna Robinson wrote: > Hi, > > Why did you choose qt-embedded as opposed to qt-x11-free ? > You can download a tarball for qt-x11-free-3.3.X.tar.gz > from here: ftp://ftp.trolltech.com/qt/source/ > > Otherwise ... you could wait for a couple of months. > Porting Valkyrie to QT4 starts in September. > > Donna > > > On Wednesday 23 July 2008 18:40, you wrote: > >> fd9 for x86_64 has qt-4.3.5. Since valkyrie-1.3.0 doesn't like against >> it, I checked documentation, and tried to install >> qt-embedded-free-3.3.6. It errors out on x86_64, trying to store a >> pointer in a int. >> >> Rather than try to fix the bugs, I did a qt make -k, then in valkyrie: >> :/usr/local/src/valkyrie-1.3.0 # ./configure --prefix=/usr/local >> >> --with-Qt-dir=/usr/local/src/qt-embedded-free-3.3.6 >> checking for a BSD-compatible install... /usr/bin/install -c >> checking whether build environment is sane... yes >> checking for gawk... gawk >> checking whether make sets $(MAKE)... yes >> checking for style of include used by make... GNU >> checking for g++... g++ >> checking for C++ compiler default output file name... a.out >> checking whether the C++ compiler works... yes >> checking whether we are cross compiling... no >> checking for suffix of executables... >> checking for suffix of object files... o >> checking whether we are using the GNU C++ compiler... yes >> checking whether g++ accepts -g... yes >> checking dependency style of g++... gcc3 >> checking for gcc... gcc >> checking whether we are using the GNU C compiler... yes >> checking whether gcc accepts -g... yes >> checking for gcc option to accept ISO C89... none needed >> checking dependency style of gcc... gcc3 >> checking how to run the C preprocessor... gcc -E >> checking for X... libraries /usr/lib64, headers >> checking for gethostbyname... yes >> checking for connect... yes >> checking for remove... yes >> checking for shmat... yes >> checking for IceConnectionNumber in -lICE... yes >> checking for Qt... yes: >> QT_CXXFLAGS=-I/usr/local/src/qt-embedded-free-3.3.6/include >> QT_DIR=/usr/local/src/qt-embedded-free-3.3.6 >> QT_LIBS=-L/usr/local/src/qt-embedded-free-3.3.6/lib -lqte -lSM >> -lICE -L/usr/lib64 -lX11 -lXext -lXmu -lXt -lXi >> QT_UIC= >> QT_MOC=/usr/local/src/qt-embedded-free-3.3.6/bin/moc >> checking correct functioning of Qt installation... failure >> configure: error: Failed to find matching components of a complete >> Qt installation. Try using more options, >> see ./configure --help. >> >> Suggestions?? >> > > > |
From: Donna R. <do...@ke...> - 2008-07-23 16:50:10
|
Hi, Why did you choose qt-embedded as opposed to qt-x11-free ? You can download a tarball for qt-x11-free-3.3.X.tar.gz from here: ftp://ftp.trolltech.com/qt/source/ Otherwise ... you could wait for a couple of months. Porting Valkyrie to QT4 starts in September. Donna On Wednesday 23 July 2008 18:40, you wrote: > fd9 for x86_64 has qt-4.3.5. Since valkyrie-1.3.0 doesn't like against > it, I checked documentation, and tried to install > qt-embedded-free-3.3.6. It errors out on x86_64, trying to store a > pointer in a int. > > Rather than try to fix the bugs, I did a qt make -k, then in valkyrie: > :/usr/local/src/valkyrie-1.3.0 # ./configure --prefix=/usr/local > > --with-Qt-dir=/usr/local/src/qt-embedded-free-3.3.6 > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking for style of include used by make... GNU > checking for g++... g++ > checking for C++ compiler default output file name... a.out > checking whether the C++ compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C++ compiler... yes > checking whether g++ accepts -g... yes > checking dependency style of g++... gcc3 > checking for gcc... gcc > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking dependency style of gcc... gcc3 > checking how to run the C preprocessor... gcc -E > checking for X... libraries /usr/lib64, headers > checking for gethostbyname... yes > checking for connect... yes > checking for remove... yes > checking for shmat... yes > checking for IceConnectionNumber in -lICE... yes > checking for Qt... yes: > QT_CXXFLAGS=-I/usr/local/src/qt-embedded-free-3.3.6/include > QT_DIR=/usr/local/src/qt-embedded-free-3.3.6 > QT_LIBS=-L/usr/local/src/qt-embedded-free-3.3.6/lib -lqte -lSM > -lICE -L/usr/lib64 -lX11 -lXext -lXmu -lXt -lXi > QT_UIC= > QT_MOC=/usr/local/src/qt-embedded-free-3.3.6/bin/moc > checking correct functioning of Qt installation... failure > configure: error: Failed to find matching components of a complete > Qt installation. Try using more options, > see ./configure --help. > > Suggestions?? |
From: Donna R. <do...@va...> - 2008-07-09 09:56:49
|
We are pleased to announce a new release of Valkyrie, version 1.3.0. Valkyrie is a GPL2'd Qt-based GUI for Valgrind's Memcheck tool. Version 1.3.0 adds support for Valgrind versions 3.3.0 and 3.3.1, and fixes a number of bugs reported since the last release (1.2.0). The source code, and some screen shots, are available at http://www.open-works.net/projects/valkyrie.html. -- The Valkyrie Developers Release 1.3.0 (30 June 2008) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.3.0 adds support for Valgrind versions 3.3.0 and 3.3.1, and fixes a number of bugs reported in 1.2.0. NEW FUNCTIONALITY: - Added option to set working directory (via cmdline and vk config) - Allow for multiple suppressions on the command line BUGS and PROBLEMS FIXED: - Cleanup compiler warnings. Thanks to Diego Petten - Better editor support in configure: gvim, gview, kate Thanks to Pim Nijdamd, Anton Dudarenko - Clicking valgrind options item the first time would lead to a crash; init() executed updates to the page, which tried to update the page before it had been setup completely. Thanks to Pengcheng Zou - Fixed null ptr defef, which happened if memcheck finished before expected while reading logfile. Thanks to Gert Steenssens - Do not prevent horizontal scrolling for log window Thanks to Anton Dudarenko. - Fixed log dir setup (as requested by many!) Temporary logs are now always written to /tmp/valkyrie_logs (configured value). Added a user configurable "Log Dir", which is used as the default dir when saving logs. - Compile errors for Slackware 10.1 - Various compiler warnings. It now compiles cleanly with g++-4.3.1. - Fixed open/close items buttons - open current item: only worked once item had been opened once already - open all items: didn't open leak errors (stopped at suppressions) - open all items: remained 'pushed' even if all items were closed (valkyrie-1.3.0: 30 June 2008, svn r449). |
From: Hai Z. <ha...@ha...> - 2008-07-09 00:36:33
|
1. Attached patch to make valkyrie to honor system QT style by default. It also implements a proper way to update widgets on palette change, instead of just resetting style. 2. Another patch makes docs to be installed to /usr/share/doc/valkyrie. I do not know if you have special reason to install docs to /usr/doc by default, but if you do not, please consider applying. 3. The last patch makes kate to reuse currently open session (if any), instead of open new editor window each time. Thanks for the software! P.S. I'm not on the list, so please CC me. -- Zaar |
From: <sv...@va...> - 2008-06-30 10:50:16
|
Author: sewardj Date: 2008-06-30 11:50:23 +0100 (Mon, 30 Jun 2008) New Revision: 449 Log: Finalise 1.3.0. Modified: trunk/NEWS trunk/configure.in Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2008-06-30 07:43:36 UTC (rev 448) +++ trunk/NEWS 2008-06-30 10:50:23 UTC (rev 449) @@ -1,13 +1,13 @@ Release 1.3.0 (30 June 2008) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1.3.0 adds support for Valgrind versions 3.3.0 and 3.3.1, and fixes a +number of bugs reported in 1.2.0. -1.3.0 has focused on stability with a view to the forthcoming support -for Helgrind, Valgrind's new thread-checking tool. Valkyrie now supports -Valgrind 3.3.0. And, of course, the usually collection of bug fixes. +NEW FUNCTIONALITY: -OTHER NEW STUFF: - Added option to set working directory (via cmdline and vk config) + - Allow for multiple suppressions on the command line BUGS and PROBLEMS FIXED: @@ -36,16 +36,16 @@ - Compile errors for Slackware 10.1 -- Various compiler warnings +- Various compiler warnings. It now compiles cleanly with g++-4.3.1. - Fixed open/close items buttons - open current item: only worked once item had been opened once already - open all items: didn't open leak errors (stopped at suppressions) - open all items: remained 'pushed' even if all items were closed +(valkyrie-1.3.0: 30 June 2008, svn r449). - Release 1.2.0 (02 June 2006) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.2.0 fixes a bunch of bugs from 1.1.0. There is no major new Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-06-30 07:43:36 UTC (rev 448) +++ trunk/configure.in 2008-06-30 10:50:23 UTC (rev 449) @@ -2,7 +2,7 @@ ######################################################################## # ? AC_PREREQ(2.59) -AC_INIT(Valkyrie, 1.3.0.SVN, in...@op...) +AC_INIT(Valkyrie, 1.3.0, in...@op...) AC_CONFIG_SRCDIR([valkyrie/main.cpp]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR(m4) |
From: <sv...@va...> - 2008-06-30 07:43:29
|
Author: sewardj Date: 2008-06-30 08:43:36 +0100 (Mon, 30 Jun 2008) New Revision: 448 Log: Add a new regression test, for checking multi-XML file merging. Added: trunk/vk_logmerge/tests/multilogfile trunk/vk_logmerge/tests/multilogfile.stderr.exp trunk/vk_logmerge/tests/multilogfile.stdout.exp trunk/vk_logmerge/tests/multilogfile.vgtest trunk/vk_logmerge/tests/multilogfile1.xml trunk/vk_logmerge/tests/multilogfile2.xml trunk/vk_logmerge/tests/multilogfile3.xml Modified: trunk/vk_logmerge/tests/Makefile.am Modified: trunk/vk_logmerge/tests/Makefile.am =================================================================== --- trunk/vk_logmerge/tests/Makefile.am 2008-06-30 07:20:18 UTC (rev 447) +++ trunk/vk_logmerge/tests/Makefile.am 2008-06-30 07:43:36 UTC (rev 448) @@ -2,4 +2,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ singlelogfile singlelogfile.vgtest \ - singlelogfile.stderr.exp singlelogfile.stdout.exp + singlelogfile.stderr.exp singlelogfile.stdout.exp \ + multilogfile multilogfile.vgtest \ + multilogfile1.xml multilogfile2.xml multilogfile3.xml \ + multilogfile.stderr.exp multilogfile.stdout.exp Added: trunk/vk_logmerge/tests/multilogfile =================================================================== --- trunk/vk_logmerge/tests/multilogfile (rev 0) +++ trunk/vk_logmerge/tests/multilogfile 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1,4 @@ +#!/bin/bash +# 'merge' three xml files + +../vk_logmerge ./multilogfile1.xml ./multilogfile2.xml ./multilogfile3.xml Property changes on: trunk/vk_logmerge/tests/multilogfile ___________________________________________________________________ Name: svn:executable + * Added: trunk/vk_logmerge/tests/multilogfile.stderr.exp =================================================================== Added: trunk/vk_logmerge/tests/multilogfile.stdout.exp =================================================================== --- trunk/vk_logmerge/tests/multilogfile.stdout.exp (rev 0) +++ trunk/vk_logmerge/tests/multilogfile.stdout.exp 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1,727 @@ +<?xml version = '1.0'?> + +<valgrindoutput> + + <protocolversion>2</protocolversion> + + <preamble> + <line>Memcheck, a memory error detector.</line> + <line>Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.</line> + <line>Using LibVEX rev 1812, a library for dynamic binary translation.</line> + <line>Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.</line> + <line>Using valgrind-3.3.1.RC1, a dynamic binary instrumentation framework.</line> + <line>Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.</line> + </preamble> + + <pid>17179</pid> + + <ppid>32250</ppid> + + <tool>memcheck</tool> + + <args> + <vargv> + <exe>/home/sewardj/Vg33BRANCH/branch33/Inst/bin/valgrind</exe> + <arg>--xml=yes</arg> + </vargv> + <argv> + <exe>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</exe> + </argv> + </args> + + <status> + <state>RUNNING</state> + <time>00:00:00:00.045</time> + </status> + + <error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x40053B</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>badfree.c</file> + <line>12</line> + </frame> + </stack> + <auxwhat>Address 0x87654321 is not stack'd, malloc'd or (recently) free'd</auxwhat> + </error> + + <error> + <unique>0x4</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400544</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>badfree.c</file> + <line>15</line> + </frame> + </stack> + <auxwhat>Address 0x7fefffa50 is on thread 1's stack</auxwhat> + </error> + + <error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidRead</kind> + <what>Invalid read of size 1</what> + <stack> + <frame> + <ip>0x400522</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ddd</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>7</line> + </frame> + <frame> + <ip>0x400534</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ccc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40053F</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>bbb</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>9</line> + </frame> + <frame> + <ip>0x40054A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>aaa</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>10</line> + </frame> + <frame> + <ip>0x400592</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + <auxwhat>Address 0x516a02f is 1 bytes before a block of size 10 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40055A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>zzzzzzz</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>12</line> + </frame> + <frame> + <ip>0x40056C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>yyy</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>13</line> + </frame> + <frame> + <ip>0x400577</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>xxx</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x400582</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>www</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>15</line> + </frame> + <frame> + <ip>0x40058D</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + </error> + + <error> + <unique>0x4</unique> + <tid>1</tid> + <kind>InvalidWrite</kind> + <what>Invalid write of size 1</what> + <stack> + <frame> + <ip>0x400528</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ddd</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>7</line> + </frame> + <frame> + <ip>0x400534</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ccc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40053F</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>bbb</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>9</line> + </frame> + <frame> + <ip>0x40054A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>aaa</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>10</line> + </frame> + <frame> + <ip>0x400592</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + <auxwhat>Address 0x516a02f is 1 bytes before a block of size 10 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40055A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>zzzzzzz</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>12</line> + </frame> + <frame> + <ip>0x40056C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>yyy</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>13</line> + </frame> + <frame> + <ip>0x400577</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>xxx</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x400582</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>www</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>15</line> + </frame> + <frame> + <ip>0x40058D</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + </error> + + <error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidRead</kind> + <what>Invalid read of size 4</what> + <stack> + <frame> + <ip>0x4005B6</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>11</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x516a058 is 0 bytes after a block of size 40 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x4005A9</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + </error> + + <error> + <unique>0x4</unique> + <tid>1</tid> + <kind>UninitCondition</kind> + <what>Conditional jump or move depends on uninitialised value(s)</what> + <stack> + <frame> + <ip>0x4005C8</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + </error> + + <error> + <unique>0x5</unique> + <tid>1</tid> + <kind>UninitValue</kind> + <what>Use of uninitialised value of size 8</what> + <stack> + <frame> + <ip>0x4005F3</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>21</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + </error> + + <error> + <unique>0x6</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400609</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>25</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x516a030 is 0 bytes inside a block of size 40 free'd</auxwhat> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400600</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>24</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + </error> + + <error> + <unique>0x7</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400612</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>28</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x7fefffa44 is on thread 1's stack</auxwhat> + </error> + + <error> + <unique>0x8</unique> + <tid>1</tid> + <kind>SyscallParam</kind> + <what>Syscall param exit_group(exit_code) contains uninitialised byte(s)</what> + <stack> + <frame> + <ip>0x4EBB8C8</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>_Exit</fn> + </frame> + <frame> + <ip>0x4E5ACF4</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>exit</fn> + </frame> + <frame> + <ip>0x4E45AEA</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>(below main)</fn> + </frame> + </stack> + </error> + + <errorcounts> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x5</unique> + </pair> + <pair> + <count>1</count> + <unique>0x6</unique> + </pair> + <pair> + <count>1</count> + <unique>0x7</unique> + </pair> + <pair> + <count>1</count> + <unique>0x8</unique> + </pair> + </errorcounts> + + <status> + <state>FINISHED</state> + <time>00:00:00:00.286</time> + </status> + + <suppcounts> + <pair> + <count>9</count> + <name>dl-hack3</name> + </pair> + </suppcounts> + + <error> + <unique>0x9</unique> + <tid>1</tid> + <kind>Leak_DefinitelyLost</kind> + <what>396 bytes in 1 blocks are definitely lost in loss record 1 of 1</what> + <leakedbytes>396</leakedbytes> + <leakedblocks>1</leakedblocks> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40061C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>31</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + </error> + +</valgrindoutput> Added: trunk/vk_logmerge/tests/multilogfile.vgtest =================================================================== --- trunk/vk_logmerge/tests/multilogfile.vgtest (rev 0) +++ trunk/vk_logmerge/tests/multilogfile.vgtest 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1 @@ +prog: multilogfile Added: trunk/vk_logmerge/tests/multilogfile1.xml =================================================================== --- trunk/vk_logmerge/tests/multilogfile1.xml (rev 0) +++ trunk/vk_logmerge/tests/multilogfile1.xml 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1,111 @@ +<?xml version="1.0"?> + +<valgrindoutput> + +<protocolversion>2</protocolversion> + +<preamble> + <line>Memcheck, a memory error detector.</line> + <line>Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.</line> + <line>Using LibVEX rev 1812, a library for dynamic binary translation.</line> + <line>Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.</line> + <line>Using valgrind-3.3.1.RC1, a dynamic binary instrumentation framework.</line> + <line>Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.</line> +</preamble> + +<pid>17179</pid> +<ppid>32250</ppid> +<tool>memcheck</tool> + +<args> + <vargv> + <exe>/home/sewardj/Vg33BRANCH/branch33/Inst/bin/valgrind</exe> + <arg>--xml=yes</arg> + </vargv> + <argv> + <exe>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</exe> + </argv> +</args> + +<status> + <state>RUNNING</state> + <time>00:00:00:00.045</time> +</status> + +<error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x40053B</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>badfree.c</file> + <line>12</line> + </frame> + </stack> + <auxwhat>Address 0x87654321 is not stack'd, malloc'd or (recently) free'd</auxwhat> +</error> + +<error> + <unique>0x4</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400544</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>badfree.c</file> + <line>15</line> + </frame> + </stack> + <auxwhat>Address 0x7fefffa50 is on thread 1's stack</auxwhat> +</error> + +<errorcounts> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> +</errorcounts> + +<status> + <state>FINISHED</state> + <time>00:00:00:00.286</time> +</status> + +<suppcounts> + <pair> + <count>3</count> + <name>dl-hack3</name> + </pair> +</suppcounts> + +</valgrindoutput> + Added: trunk/vk_logmerge/tests/multilogfile2.xml =================================================================== --- trunk/vk_logmerge/tests/multilogfile2.xml (rev 0) +++ trunk/vk_logmerge/tests/multilogfile2.xml 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1,259 @@ +<?xml version="1.0"?> + +<valgrindoutput> + +<protocolversion>2</protocolversion> + +<preamble> + <line>Memcheck, a memory error detector.</line> + <line>Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.</line> + <line>Using LibVEX rev 1812, a library for dynamic binary translation.</line> + <line>Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.</line> + <line>Using valgrind-3.3.1.RC1, a dynamic binary instrumentation framework.</line> + <line>Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.</line> +</preamble> + +<pid>17184</pid> +<ppid>32250</ppid> +<tool>memcheck</tool> + +<args> + <vargv> + <exe>/home/sewardj/Vg33BRANCH/branch33/Inst/bin/valgrind</exe> + <arg>--xml=yes</arg> + </vargv> + <argv> + <exe>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</exe> + </argv> +</args> + +<status> + <state>RUNNING</state> + <time>00:00:00:00.046</time> +</status> + +<error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidRead</kind> + <what>Invalid read of size 1</what> + <stack> + <frame> + <ip>0x400522</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ddd</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>7</line> + </frame> + <frame> + <ip>0x400534</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ccc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40053F</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>bbb</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>9</line> + </frame> + <frame> + <ip>0x40054A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>aaa</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>10</line> + </frame> + <frame> + <ip>0x400592</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + <auxwhat>Address 0x516a02f is 1 bytes before a block of size 10 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40055A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>zzzzzzz</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>12</line> + </frame> + <frame> + <ip>0x40056C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>yyy</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>13</line> + </frame> + <frame> + <ip>0x400577</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>xxx</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x400582</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>www</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>15</line> + </frame> + <frame> + <ip>0x40058D</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> +</error> + +<error> + <unique>0x4</unique> + <tid>1</tid> + <kind>InvalidWrite</kind> + <what>Invalid write of size 1</what> + <stack> + <frame> + <ip>0x400528</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ddd</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>7</line> + </frame> + <frame> + <ip>0x400534</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>ccc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40053F</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>bbb</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>9</line> + </frame> + <frame> + <ip>0x40054A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>aaa</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>10</line> + </frame> + <frame> + <ip>0x400592</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> + <auxwhat>Address 0x516a02f is 1 bytes before a block of size 10 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40055A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>zzzzzzz</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>12</line> + </frame> + <frame> + <ip>0x40056C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>yyy</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>13</line> + </frame> + <frame> + <ip>0x400577</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>xxx</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x400582</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>www</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>15</line> + </frame> + <frame> + <ip>0x40058D</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/errs1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>errs1.c</file> + <line>17</line> + </frame> + </stack> +</error> + +<errorcounts> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> +</errorcounts> + +<status> + <state>FINISHED</state> + <time>00:00:00:00.301</time> +</status> + +<suppcounts> + <pair> + <count>3</count> + <name>dl-hack3</name> + </pair> +</suppcounts> + +</valgrindoutput> + Added: trunk/vk_logmerge/tests/multilogfile3.xml =================================================================== --- trunk/vk_logmerge/tests/multilogfile3.xml (rev 0) +++ trunk/vk_logmerge/tests/multilogfile3.xml 2008-06-30 07:43:36 UTC (rev 448) @@ -0,0 +1,458 @@ +<?xml version="1.0"?> + +<valgrindoutput> + +<protocolversion>2</protocolversion> + +<preamble> + <line>Memcheck, a memory error detector.</line> + <line>Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.</line> + <line>Using LibVEX rev 1812, a library for dynamic binary translation.</line> + <line>Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.</line> + <line>Using valgrind-3.3.1.RC1, a dynamic binary instrumentation framework.</line> + <line>Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.</line> +</preamble> + +<pid>17259</pid> +<ppid>32250</ppid> +<tool>memcheck</tool> + +<args> + <vargv> + <exe>/home/sewardj/Vg33BRANCH/branch33/Inst/bin/valgrind</exe> + <arg>--xml=yes</arg> + </vargv> + <argv> + <exe>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/badfree</exe> + </argv> +</args> + +<status> + <state>RUNNING</state> + <time>00:00:00:00.046</time> +</status> + +<error> + <unique>0x3</unique> + <tid>1</tid> + <kind>InvalidRead</kind> + <what>Invalid read of size 4</what> + <stack> + <frame> + <ip>0x4005B6</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>11</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x516a058 is 0 bytes after a block of size 40 alloc'd</auxwhat> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x4005A9</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>8</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> +</error> + +<error> + <unique>0x4</unique> + <tid>1</tid> + <kind>UninitCondition</kind> + <what>Conditional jump or move depends on uninitialised value(s)</what> + <stack> + <frame> + <ip>0x4005C8</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> +</error> + +<error> + <unique>0x5</unique> + <tid>1</tid> + <kind>UninitValue</kind> + <what>Use of uninitialised value of size 8</what> + <stack> + <frame> + <ip>0x4005F3</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>21</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> +</error> + +<error> + <unique>0x6</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400609</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>25</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x516a030 is 0 bytes inside a block of size 40 free'd</auxwhat> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400600</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>24</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> +</error> + +<error> + <unique>0x7</unique> + <tid>1</tid> + <kind>InvalidFree</kind> + <what>Invalid free() / delete / delete[]</what> + <stack> + <frame> + <ip>0x4C2295E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>free</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>323</line> + </frame> + <frame> + <ip>0x400612</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>28</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> + <auxwhat>Address 0x7fefffa44 is on thread 1's stack</auxwhat> +</error> + +<error> + <unique>0x8</unique> + <tid>1</tid> + <kind>SyscallParam</kind> + <what>Syscall param exit_group(exit_code) contains uninitialised byte(s)</what> + <stack> + <frame> + <ip>0x4EBB8C8</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>_Exit</fn> + </frame> + <frame> + <ip>0x4E5ACF4</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>exit</fn> + </frame> + <frame> + <ip>0x4E45AEA</ip> + <obj>/lib64/libc-2.5.so</obj> + <fn>(below main)</fn> + </frame> + </stack> +</error> + +<errorcounts> + <pair> + <count>1</count> + <unique>0x8</unique> + </pair> + <pair> + <count>1</count> + <unique>0x7</unique> + </pair> + <pair> + <count>1</count> + <unique>0x6</unique> + </pair> + <pair> + <count>1</count> + <unique>0x5</unique> + </pair> + <pair> + <count>1</count> + <unique>0x4</unique> + </pair> + <pair> + <count>1</count> + <unique>0x3</unique> + </pair> +</errorcounts> + +<status> + <state>FINISHED</state> + <time>00:00:00:00.305</time> +</status> + +<suppcounts> + <pair> + <count>3</count> + <name>dl-hack3</name> + </pair> +</suppcounts> + +<error> + <unique>0x9</unique> + <tid>1</tid> + <kind>Leak_DefinitelyLost</kind> + <what>396 bytes in 1 blocks are definitely lost in loss record 1 of 1</what> + <leakedbytes>396</leakedbytes> + <leakedblocks>1</leakedblocks> + <stack> + <frame> + <ip>0x4C22DDB</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/Inst/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj> + <fn>malloc</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/coregrind/m_replacemalloc</dir> + <file>vg_replace_malloc.c</file> + <line>207</line> + </frame> + <frame> + <ip>0x40061C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame3</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>31</line> + </frame> + <frame> + <ip>0x40062E</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame2</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>39</line> + </frame> + <frame> + <ip>0x40063C</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>frame1</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>44</line> + </frame> + <frame> + <ip>0x40064A</ip> + <obj>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests/xml1</obj> + <fn>main</fn> + <dir>/home/sewardj/Vg33BRANCH/branch33/memcheck/tests</dir> + <file>xml1.c</file> + <line>49</line> + </frame> + </stack> +</error> + +</valgrindoutput> + |