dbdriver sigsegv errors.

View: New views
2 Messages — Rating Filter:   Alert me  

dbdriver sigsegv errors.

by Daniel Kolbo :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I am using mysql6.  mysql++ seems to be 'working' and 'installed'
correctly; however, at the end of the execution of my programs i am
receiving SIGSEGV errors.

When I installed mysql++ simple1 was built.  This version of simple1
does NOT produce the error.  However, when I copy the code and try to
build it myself I receive the error at the end of the file when running
the application.  I am able to compile, but when I run the program it
has to abort, and when i debug I get the SIGSEGV error at end of the file.

Here is the commands codeblocks used to compile my project titled 'temp'
that contains the exact same code as simple1.cpp.

mingw32-g++.exe -Wall -fexceptions  -g    
-IE:\mysql++-3.0.3\include_mysql++ -IE:\mysql++-3.0.3\include_mysql6  -c
E:\C++\codeblocks\Practice\temp\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -Wall -fexceptions  -g    
-IE:\mysql++-3.0.3\include_mysql++ -IE:\mysql++-3.0.3\include_mysql6  -c
E:\C++\codeblocks\Practice\temp\printdata.cpp -o obj\Debug\printdata.o
mingw32-g++.exe  -o bin\Debug\temp.exe obj\Debug\main.o
obj\Debug\printdata.o obj\Debug\cmdline.o    
E:\mysql++-3.0.3\include_lib_a_def\libmysqlpp.a
Output size is 1.92 MB
Process terminated with status 0 (0 minutes, 9 seconds)
0 errors, 0 warnings

"E:\mysql++-3.0.3\include_mysql6" contains the exact contents of
C:\Program Files\MySQL\MySQL Server 6.0\include
"E:\mysql++-3.0.3\include_mysql++" contains all the mysql++ header files
(the same as the contents of the "include" folder when running the
default install.bat)

In codeblocks' debugger I get a SIGSEGV.  This occurs at the end of the
file, right around the return 0 in my int main() c++ console
application.  I think the error is occuring when the connection
destructor is being called.  Here is the backtrace.
#0 6B3C5834    mysqlpp::DBDriver::~DBDriver(this=0x3e3f80)
(lib/dbdriver.cpp:67)
#1 6B3C21B7    mysqlpp::Connection::~Connection(this=0x22ff30)
(lib/connection.cpp:67)
#2 0040185A    main(argc=1, argv=0x3e3f60)
(E:/C++/codeblocks/Practice/temp/main.cpp:68)

Here is the code for the destructor for dbdriver
DBDriver::~DBDriver()
{
    if (connected()) {
        disconnect();
    }

    OptionList::const_iterator it;
    for (it = applied_options_.begin(); it != applied_options_.end();
++it) {
        delete *it;//THIS IS LINE 67 where the SIGSEGV occurs
    }
}

I don't think this has to do with mysql6, b/c the default build of
simple1 does not create the error whereas mine does create the error.  
Hopefully, this means there is a solution.

What is going on here? Did I link the project correctly?

Thanks,


Re: dbdriver sigsegv errors.

by Daniel Kolbo :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

answering my own question here...

So I spent about 5 hours figuring out that I was using an old version of
mysqlpp.dll in my system32 folder.  When upgrading to mysql6 i decided
to rebuild the mysql++ dll against the mysql6 headers, but i forgot to
update the system32 folder!  No wonder it compiled but didn't run well...

So that is my, "don't be stupid like me" post.

Daniel Kolbo wrote:

> Hello,
>
> I am using mysql6.  mysql++ seems to be 'working' and 'installed'
> correctly; however, at the end of the execution of my programs i am
> receiving SIGSEGV errors.
> When I installed mysql++ simple1 was built.  This version of simple1
> does NOT produce the error.  However, when I copy the code and try to
> build it myself I receive the error at the end of the file when
> running the application.  I am able to compile, but when I run the
> program it has to abort, and when i debug I get the SIGSEGV error at
> end of the file.
>
> Here is the commands codeblocks used to compile my project titled
> 'temp' that contains the exact same code as simple1.cpp.
>
> mingw32-g++.exe -Wall -fexceptions  -g    
> -IE:\mysql++-3.0.3\include_mysql++ -IE:\mysql++-3.0.3\include_mysql6  
> -c E:\C++\codeblocks\Practice\temp\main.cpp -o obj\Debug\main.o
> mingw32-g++.exe -Wall -fexceptions  -g    
> -IE:\mysql++-3.0.3\include_mysql++ -IE:\mysql++-3.0.3\include_mysql6  
> -c E:\C++\codeblocks\Practice\temp\printdata.cpp -o obj\Debug\printdata.o
> mingw32-g++.exe  -o bin\Debug\temp.exe obj\Debug\main.o
> obj\Debug\printdata.o obj\Debug\cmdline.o    
> E:\mysql++-3.0.3\include_lib_a_def\libmysqlpp.a
> Output size is 1.92 MB
> Process terminated with status 0 (0 minutes, 9 seconds)
> 0 errors, 0 warnings
>
> "E:\mysql++-3.0.3\include_mysql6" contains the exact contents of
> C:\Program Files\MySQL\MySQL Server 6.0\include
> "E:\mysql++-3.0.3\include_mysql++" contains all the mysql++ header
> files (the same as the contents of the "include" folder when running
> the default install.bat)
>
> In codeblocks' debugger I get a SIGSEGV.  This occurs at the end of
> the file, right around the return 0 in my int main() c++ console
> application.  I think the error is occuring when the connection
> destructor is being called.  Here is the backtrace.
> #0 6B3C5834    mysqlpp::DBDriver::~DBDriver(this=0x3e3f80)
> (lib/dbdriver.cpp:67)
> #1 6B3C21B7    mysqlpp::Connection::~Connection(this=0x22ff30)
> (lib/connection.cpp:67)
> #2 0040185A    main(argc=1, argv=0x3e3f60)
> (E:/C++/codeblocks/Practice/temp/main.cpp:68)
>
> Here is the code for the destructor for dbdriver
> DBDriver::~DBDriver()
> {
>    if (connected()) {
>        disconnect();
>    }
>
>    OptionList::const_iterator it;
>    for (it = applied_options_.begin(); it != applied_options_.end();
> ++it) {
>        delete *it;//THIS IS LINE 67 where the SIGSEGV occurs
>    }
> }
>
> I don't think this has to do with mysql6, b/c the default build of
> simple1 does not create the error whereas mine does create the error.  
> Hopefully, this means there is a solution.
> What is going on here? Did I link the project correctly?
> Thanks,
>
>
LightInTheBox - Buy quality products at wholesale price