in der Sufu wurde schon mal was dergleichen behandelt als thema nur würde ich gerne wissen wie ihr sonst so eure speicher löcher findet UND dann auch behandelt?
Benutzten die meisten wirklich valgrind ?
Gibt es da eine andere Methode?
Wie ist es bei "normalem" C++ code ohne Qt?
Ich habe nun mein qt Programm mit valgrind gestartet und ich verstehe trotz doku die ausgabe net:
Hier mal nur ein Fehler:
Code: Alles auswählen
==5357== Invalid read of size 4
==5357== at 0x1C54616C: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C54658C: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C5C1FF6: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C63C422: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C63C337: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C63C6C4: __libc_freeres (in /lib/tls/libc-2.3.2.so)
==5357== by 0x1B8FEA08: _vgw(float, long double,...)(...)(long double,...)(short) (vg_intercept.c:55)
==5357== by 0x1C55A1C5: exit (in /lib/tls/libc-2.3.2.so)
==5357== by 0x1C54497D: __libc_start_main (in /lib/tls/libc-2.3.2.so)
==5357== by 0x804FAB0: ??? (start.S:102)
==5357== Address 0x1C925918 is 8 bytes inside a block of size 60 free'd
==5357== at 0x1B906B04: free (vg_replace_malloc.c:152)
==5357== by 0x1C546D37: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C605902: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C6057A6: tdestroy (in /lib/tls/libc-2.3.2.so)
==5357== by 0x1C63C1C1: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C63C6C4: __libc_freeres (in /lib/tls/libc-2.3.2.so)
==5357== by 0x1B8FEA08: _vgw(float, long double,...)(...)(long double,...)(short) (vg_intercept.c:55)
==5357== by 0x1C55A1C5: exit (in /lib/tls/libc-2.3.2.so)
==5357== by 0x1C54497D: __libc_start_main (in /lib/tls/libc-2.3.2.so)
==5357== by 0x804FAB0: ??? (start.S:102)
davor war halt ein fehler aber ich glaube nicht dass der was damit zu tun hat....
Code: Alles auswählen
==5357== Syscall param writev(vector[...]) points to uninitialised byte(s)
==5357== at 0x1C6005E8: (within /lib/tls/libc-2.3.2.so)
==5357== by 0x1C16BEBF: (within /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1C16CA8E: _X11TransWritev (in /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1C14D186: _XSend (in /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1C142683: (within /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1C142DCA: XPutImage (in /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1C0633F5: XcursorImageLoadCursor (in /usr/lib/libXcursor.so.1.0.2)
==5357== by 0x1C0638C4: XcursorImagesLoadCursor (in /usr/lib/libXcursor.so.1.0.2)
==5357== by 0x1C0667D9: XcursorLibraryLoadCursor (in /usr/lib/libXcursor.so.1.0.2)
==5357== by 0x1BB27CD6: QCursorData::update() (qcursor_x11.cpp:261)
==5357== by 0x1BB278A9: QCursor::handle() const (qcursor_x11.cpp:113)
==5357== by 0x1BB33294: qt_x11_enforce_cursor(QWidget*) (qwidget_x11.cpp:273)
==5357== Address 0x1C762D82 is 274 bytes inside a block of size 2048 alloc'd
==5357== at 0x1B906F75: calloc (vg_replace_malloc.c:175)
==5357== by 0x1C13E09C: XOpenDisplay (in /usr/X11R6/lib/libX11.so.6.2)
==5357== by 0x1BB11C9F: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:1423)
==5357== by 0x1BAB0415: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:634)
==5357== by 0x1BAAFF90: QApplication::QApplication(int&, char**) (qapplication.cpp:562)
==5357== by 0x804FC85: main (UIMain.cpp:15)
Code: Alles auswählen
QApplication app( argc, argv );
Ich danke euch für eure Hilfe!