List:MySQL++« Previous MessageNext Message »
From:Björn Persson Date:November 30 2005 1:23pm
Subject:Passing results by copy
View as plain text  
Should it be possible to pass a Result to a function by copy? I had a problem 
with sporadic crashes and tracked it to a function where I had accidentally 
declared a parameter as "Result" instead of "const Result&". I'm not sure 
it's ever useful to pass a Result by copy instead of by reference, but it's 
not good that it causes hard-to-track memory corruption.

So which way should the bug hunt go from here? Is it a bug that passing by 
copy doesn't work, or is it good that it doesn't work but bad that it 
corrupts the memory instead of raising an exception or causing a compilation 
error?

Here's a simple test case and the output of running it in Valgrind. It looks 
to me like it tries to destroy the same Result twice or something like that:


#include <mysql++/mysql++.h>

using namespace std;
using namespace mysqlpp;

void func(Result res) {
   for (int i = 0; i <= 3; i++) {
      cout << res.at(i)["price"] << endl;
   }
}

int main(int argc, char *argv[]) {
   Connection con(use_exceptions);
   con.connect("mysql_cpp_data", "", "username");  // Adjust as needed.
   Query query = con.query();
   Result res;

   // Assign a result to res.
   query << "select price from stock";
   res = query.store();

   // Pass it by copy.
   func(res);

   return 0;
}


==22647== Memcheck, a memory error detector for x86-linux.
==22647== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==22647== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==22647== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==22647== For more details, rerun with: -v
==22647==
8.79
1.75
0.97
1.1
==22647== Invalid read of size 4
==22647==    at 0x1BB590DA: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==    by 0x804B968: mysqlpp::Result::~Result() 
(in /home/bjorn/jobb/mysql++test2)
==22647==  Address 0x1BBF1200 is 24 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB590EA: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==    by 0x804B968: mysqlpp::Result::~Result() 
(in /home/bjorn/jobb/mysql++test2)
==22647==  Address 0x1BBF11F4 is 12 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB602F9: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1288 is 24 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60300: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1284 is 20 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60329: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1288 is 24 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60330: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1280 is 16 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB60357: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1284 is 20 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB6038B: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1280 is 16 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB60375: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1294 is 36 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB6037C: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BBD: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF1298 is 40 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid free() / delete / delete[]
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==  Address 0x1BBF1270 is 0 bytes inside a block of size 48 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB57BC5: free_rows (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB590F1: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB590F2: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==    by 0x804B968: mysqlpp::Result::~Result() 
(in /home/bjorn/jobb/mysql++test2)
==22647==  Address 0x1BBF11F0 is 8 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB602F9: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF120C is 36 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60300: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF1208 is 32 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60329: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF120C is 36 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB60330: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF1204 is 28 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB60357: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF1208 is 32 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB6038B: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF1204 is 28 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB60375: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF1218 is 48 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid write of size 4
==22647==    at 0x1BB6037C: free_root (in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB59170: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==  Address 0x1BBF121C is 52 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid read of size 4
==22647==    at 0x1BB59171: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==    by 0x1B92E9B8: mysqlpp::ResUse::~ResUse() (result.cpp:68)
==22647==    by 0x804B968: mysqlpp::Result::~Result() 
(in /home/bjorn/jobb/mysql++test2)
==22647==  Address 0x1BBF122C is 68 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== Invalid free() / delete / delete[]
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==  Address 0x1BBF11E8 is 0 bytes inside a block of size 84 free'd
==22647==    at 0x1B9040E1: free (in /usr/lib/valgrind/vgpreload_memcheck.so)
==22647==    by 0x1BB5CB60: my_no_flags_free 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1BB5910B: mysql_free_result 
(in /usr/lib/libmysqlclient.so.12.0.0)
==22647==    by 0x1B92F673: mysqlpp::ResUse::purge() (result.h:164)
==22647==
==22647== ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 29 from 1)
==22647== malloc/free: in use at exit: 10027 bytes in 47 blocks.
==22647== malloc/free: 80 allocs, 35 frees, 47045 bytes allocated.
==22647== For a detailed leak analysis,  rerun with: --leak-check=yes
==22647== For counts of detected errors, rerun with: -v

Björn Persson
Thread
Passing results by copyBjörn Persson30 Nov
  • Re: Passing results by copyChris Frey30 Nov
    • Re: Passing results by copyBjörn Persson30 Nov
  • Re: Passing results by copyWarren Young30 Nov