Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <403B7DC5.7020600@inf.ethz.ch> Date: Tue, 24 Feb 2004 17:37:25 +0100 From: Fabrice Marchal User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 MIME-Version: 1.0 To: "Gerrit @ cygwin" Subject: Re: Crash of mysql under cygwin with g++ 3.3.1 References: <1256769927 DOT 20040104213024 AT familiehaase DOT de> In-Reply-To: <1256769927.20040104213024@familiehaase.de> X-Enigmail-Version: 0.76.4.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at inf.ethz.ch X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on medoc Hallo Gerrit, Thanks for your help. I would like to ask you a few questions: 1) If I use your mysql-4.0.17 libraries, that is if I link my code against your libmysqlclient.a then my code works OK. On the other hand, then it requires cygmysqlclient.dll also: what is that library exactly? Is it the equivalent of mySQL.dll which is included in the mysql for windows? 2) I have now identified the bug, or at least what causes it: here is small example that crashes when using cygwin-1-5-7.1, MYSQL 4.0.18 and GCC3.3.1 (G++): #include #include using namespace std; class Connection{ MYSQL* mqlh; public: Connection(){ mqlh = mysql_init( NULL ); cout << "OK" << endl; } }; int main( int argc, char** args ){ Connection* con = new Connection(); // crashes here } As you can see, it seems that something is really wrong. It seems to be caused by new() since removing the mysql_init() from the new() call seems to work. I have to mention that I link only against -lmySQL which is provided in the mysql for windows distro. Maybe that is the problem (i.e. it was build from older cygwin releases) As I would like to ship a "clean" version, I don't know what to do. Normally, people would install mysql-for-win, then install my code plus just the cygwin DLL. Regards, Fabrice Gerrit P. Haase wrote: >Hallo Fabrice, > >late reply, sorry. > >Your code snippet works for me with the latest Cygwin gcc-3.3.1 and >MySQL 4.0.17 which I compiled today and which is available for testing >here: http://anfaenger.de/cygwin-1.5/mysql/ > >$ gcc -I/usr/include/mysql \ > -o mysql mysql.cpp \ > -L/usr/lib/mysql -lmysqlclient \ > -L/usr/lib -lstdc++ > >$ ./mysql > >$ g++ -I/usr/include/mysql \ > -o mysql mysql.cpp \ > -L/usr/lib/mysql -lmysqlclient > >$ ./mysql > >No problem here. > > >Am Freitag, 28. November 2003 um 01:46 schriebst du: > > > >>I dont know if this is a problem of mysql, g++ or >>cygwin but the following simple code keeps crashing with g++3.3.1 >>Platform: cygwin-1.5.5, mysql 3.23 (and mysql 4.1 as well). >>Note that the code does not crash if all the mysql_ calls are >>made from inside the "main()" block. GDB reports that the crash occurs >>when returning from the Connection() constructor. >>The code was working with former g++2.95 under cygwin. >> >> > > > >>#include "mysql.h" >>#include >> >> > > > >>using namespace std; >> >> > > > >>class Connection{ >> MYSQL *mysql; >>public: >> Connection(){ >> mysql = mysql_init( NULL ); >> if( mysql == 0 ){ >> cerr << "failed to init" << endl; >> exit(-1); } >> mysql_real_connect( mysql, "", "", "", "test", 3306, NULL, 0); >> } >>}; >> >> > > > >>int main( int argc, char** args ){ >> Connection con; >>} >> >> > > > > >HTH, >Gerrit > > -- ======================================================================== Fabrice Marchal http://www.inf.ethz.ch/~marchal fabrice DOT marchal AT ieee DOT org marchal AT inf DOT ethz DOT ch +41-(0)1-632-56-79 ETH Zurich, CoLab Computational Laboratory FAX:+41-(0)1-632-17-03 ======================================================================== -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/