Tried that but still getting segmentation fault in the same way![]()
Tried that but still getting segmentation fault in the same way![]()
Compile your application in debug mode and run it from a debugger. When it crashes, print the stack trace and post it here.
I've added "CONFIG += debug" into my project file but the output when my application crashes still says only "Segmentation fault".
This is debug from 'make':
[root@simon dbconn]# make --debug
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Updating goal targets....
File `first' does not exist.
File `all' does not exist.
Prerequisite `povezava.ui.h' is newer than target `.ui/povezava.cpp'.
Must remake target `.ui/povezava.cpp'.
/usr/lib/qt-3.3/bin/uic povezava.ui -i povezava.h -o .ui/povezava.cpp
Successfully remade target file `.ui/povezava.cpp'.
Prerequisite `.ui/povezava.cpp' is newer than target `.obj/povezava.o'.
Prerequisite `povezava.ui.h' is newer than target `.obj/povezava.o'.
Must remake target `.obj/povezava.o'.
g++ -c -pipe -Wall -W -g -DQT_SHARED -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/lib/qt-3.3/mkspecs/default -I. -I/usr/lib/qt-3.3/include -I.ui/ -I. -I.moc/ -o .obj/povezava.o .ui/povezava.cpp
/usr/lib/qt-3.3/include/qsqldatabase.h:63: warning: ‘class QSqlDriverCreatorBase’ has virtual functions but non-virtual destructor
/usr/lib/qt-3.3/include/qtooltip.h:86: warning: ‘class QToolTip’ has virtual functions but non-virtual destructor
Successfully remade target file `.obj/povezava.o'.
Prerequisite `.obj/povezava.o' is newer than target `povezava'.
Must remake target `povezava'.
g++ -o povezava .obj/main.o .obj/glavnoo.o .obj/povezava.o .obj/moc_glavnoo.o .obj/moc_povezava.o -L/usr/lib/qt-3.3/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm
Successfully remade target file `povezava'.
Must remake target `all'.
Successfully remade target file `all'.
Must remake target `first'.
Successfully remade target file `first'.
[root@simon dbconn]# ./povezava
Segmentation fault
Just a way to "debug", check everytime before accesing to baza pointer if its null and show a message on screen or on the standard output, for example, in this case.
Last edited by SkripT; 4th April 2006 at 11:27.
Try this:
$ gdb ./povezava
(gdb) run
(some output will go there and eventually the application will segfault)
(gdb) bt
and show us the result of "bt".
Here is what I get with gdb:
(gdb) run
Starting program: /home/simon/projects/dbconn/povezava
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0xb9e000
[Thread debugging using libthread_db enabled]
[New Thread -1208837664 (LWP 9818)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208837664 (LWP 9818)]
0x04d45bb5 in QSqlDatabase::isOpen (this=0xffff) at sql/qsqldatabase.cpp:772
772 return d->driver->isOpen();
(gdb) bt
#0 0x04d45bb5 in QSqlDatabase::isOpen (this=0xffff) at sql/qsqldatabase.cpp:772
#1 0x0804bcb0 in GlavnoO::test_clicked (this=0xbff491fc) at .ui/../glavnoo.ui.h:28
#2 0x0804e877 in GlavnoO::qt_invoke (this=0xbff491fc, _id=52, _o=0xbff48af8) at .moc/moc_glavnoo.cpp:87
#3 0x04ab9eb4 in QObject::activate_signal (this=0x9967440, clist=0x9969488, o=0xbff48af8) at kernel/qobject.cpp:2355
#4 0x04aba374 in QObject::activate_signal (this=0x9967440, signal=4) at kernel/qobject.cpp:2324
#5 0x04e39c7e in QButton::clicked (this=0xffff) at .moc/release-shared-mt/moc_qbutton.cpp:152
#6 0x04b59a63 in QButton::mouseReleaseEvent (this=0x9967440, e=0xbff48e54) at widgets/qbutton.cpp:836
#7 0x04af8187 in QWidget::event (this=0x9967440, e=0xbff48e54) at kernel/qwidget.cpp:4699
#8 0x04a550dd in QApplication::internalNotify (this=0xffff, receiver=0x9967440, e=0xbff48e54) at kernel/qapplication.cpp:2635
#9 0x04a5603f in QApplication::notify (this=0xbff49334, receiver=0x9967440, e=0xbff48e54) at kernel/qapplication.cpp:2421
#10 0x049ec746 in QETWidget::translateMouseEvent (this=0x9967440, event=0xbff49118) at kernel/qapplication.h:518
#11 0x049eaf01 in QApplication::x11ProcessEvent (this=0xbff49334, event=0xbff49118) at kernel/qapplication_x11.cpp:3468
#12 0x049ff008 in QEventLoop:rocessEvents (this=0x9944fe0, flags=Variable "flags" is not available.
) at kernel/qeventloop_x11.cpp:192
#13 0x04a6d82b in QEventLoop::enterLoop (this=0x9944fe0) at kernel/qeventloop.cpp:198
#14 0x04a6d736 in QEventLoop::exec (this=0x9944fe0) at kernel/qeventloop.cpp:145
#15 0x04a54aa9 in QApplication::exec (this=0xbff49334) at kernel/qapplication.cpp:2758
#16 0x0804bc31 in main (argc=1, argv=0xbff49414) at main.cpp:19
(gdb) Quit
(gdb)
Can we see the current code too?
Code is still the same as it was in the first post.
Then this code is surely invalid as you have a local variable "baza" which points to the database and a member variable "baza" which points to some garbage which probably causes a crash.
Possible. But why doesn't compiler find any errors? And how do i change the code to make it work?
Why should it find errors? The code is valid C++, it just doesn't do what you wnt. Zlatko already told you how to correct it.
Bookmarks