Ошибка сегментации иногда возникает, когда функция cvCreateFileCapture вызывается по сетевому URL

Ошибка сегментации возникает, когда функция cvCreateFileCapture иногда вызывается с использованием сетевого URL-адреса в качестве аргумента, например: rtsp: // IP-адрес: порт / путь …

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

...

CvCapture* capture = cvCreateFileCapture("rtsp://...");

...

return a.exec();
}

Ошибка не возникает, если аргумент представляет собой файл на диске.

Я строю исходный код в режиме отладки, и я, когда произошла ошибка сегментации, перечисляется следующая трассировка стека:

gst_caps_unref
CvCapture_GStreamer::open(int, char const*)
cvCreateCapture_GStreamer(int, char const*)
cvCreateFileCapture
main

ОБНОВИТЬ. Если я создам Простой C ++ Проект, вызов функции cvCreateFileCapture всегда приводит к ошибке сегментации. Если вместо этого я создаю Приложение Qt Gui Проект, ошибка сегментации происходит случайно.

ВЫХОД ВАЛЬГРИНД

==3160== Memcheck, a memory error detector
==3160== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3160== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3160== Command: ./Calibration 15 8 5 http://root:root@192.168.1.51/axis-cgi/mjpg/video.cgi
==3160==
--3160-- WARNING: Serious error when reading debug info
--3160-- When reading debug info from /usr/lib/nvidia-331/libGL.so.331.20:
--3160-- Can't make sense of .data section mapping
--3160-- WARNING: Serious error when reading debug info
--3160-- When reading debug info from /usr/lib/nvidia-331/libnvidia-glcore.so.331.20:
--3160-- Can't make sense of .got section mapping
==3160== Invalid read of size 4
==3160==    at 0x74444A2: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7446B09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x745B1EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7450065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7450188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x745040C: FcInit (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x585B608: ??? (in /usr/lib/i386-linux-gnu/libQtGui.so.4.8.1)
==3160==    by 0x57DCC0B: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/i386-linux-gnu/libQtGui.so.4.8.1)
==3160==    by 0x7E014E7: ???
==3160==  Address 0xaaa898c is 20 bytes inside a block of size 22 alloc'd
==3160==    at 0x402BE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==3160==    by 0x7444407: ??? (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7446B09: FcConfigFilename (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x745B1EB: FcConfigParseAndLoad (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7450065: FcInitLoadConfig (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x7450188: FcInitLoadConfigAndFonts (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x745040C: FcInit (in /usr/lib/i386-linux-gnu/libfontconfig.so.1.4.4)
==3160==    by 0x585B608: ??? (in /usr/lib/i386-linux-gnu/libQtGui.so.4.8.1)
==3160==    by 0x57DCC0B: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/i386-linux-gnu/libQtGui.so.4.8.1)
==3160==    by 0x7E014E7: ???
==3160==
==3160==
==3160== ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ---- Y
==3160== starting debugger with cmd: /usr/bin/gdb -nw /proc/3163/fd/1024 3163
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /proc/3163/fd/1024...done.
Attaching to program: /proc/3163/fd/1024, process 3163
Reading symbols from /usr/lib/valgrind/vgpreload_core-x86-linux.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/valgrind/vgpreload_core-x86-linux.so
Reading symbols from /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so
Reading symbols from /usr/local/lib/libopencv_core.so.2.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libopencv_core.so.2.4
Reading symbols from /usr/local/lib/libopencv_imgproc.so.2.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libopencv_imgproc.so.2.4
Reading symbols from /usr/local/lib/libopencv_highgui.so.2.4...done.
Loaded symbols for /usr/local/lib/libopencv_highgui.so.2.4
Reading symbols from /usr/local/lib/libopencv_calib3d.so.2.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libopencv_calib3d.so.2.4
Reading symbols from /usr/lib/i386-linux-gnu/libQtGui.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libQtGui.so.4
Reading symbols from /lib/i386-linux-gnu/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/libpthread-2.15.so...done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
done.
Loaded symbols for /lib/i386-linux-gnu/libpthread.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libstdc++.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libstdc++.so.6
Reading symbols from /lib/i386-linux-gnu/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libgcc_s.so.1
Reading symbols from /lib/i386-linux-gnu/libc.so.6...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/libc-2.15.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/libc.so.6
Reading symbols from /lib/i386-linux-gnu/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libz.so.1
Reading symbols from /lib/i386-linux-gnu/librt.so.1...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/librt-2.15.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/librt.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libGLU.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libGLU.so.1
Reading symbols from /usr/lib/nvidia-331/libGL.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/nvidia-331/libGL.so.1
Reading symbols from /lib/i386-linux-gnu/libm.so.6...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/libm-2.15.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/libm.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libjpeg.so.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libjpeg.so.8
Reading symbols from /lib/i386-linux-gnu/libpng12.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libpng12.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libtiff.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libtiff.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libjasper.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libjasper.so.1
Reading symbols from /usr/lib/libIlmImf.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libIlmImf.so.6
Reading symbols from /usr/lib/libHalf.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libHalf.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libgstreamer-0.10.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgstreamer-0.10.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
Reading symbols from /lib/i386-linux-gnu/libglib-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libglib-2.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgstapp-0.10.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgstapp-0.10.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgstvideo-0.10.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgstvideo-0.10.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libdc1394.so.22...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libdc1394.so.22
Reading symbols from /usr/local/lib/libv4l1.so.0...done.
Loaded symbols for /usr/local/lib/libv4l1.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxvidcore.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxvidcore.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libQtOpenGL.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libQtCore.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libQtCore.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libQtTest.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libQtTest.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libva.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libva.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libvorbisenc.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libvorbisenc.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libvorbis.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libvorbis.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libtheoraenc.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libtheoraenc.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libtheoradec.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libtheoradec.so.1
Reading symbols from /usr/lib/libopencore-amrwb.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libopencore-amrwb.so.0
Reading symbols from /usr/lib/libopencore-amrnb.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libopencore-amrnb.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libmp3lame.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libmp3lame.so.0
Reading symbols from /usr/lib/libfaac.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfaac.so.0
Reading symbols from /usr/local/lib/libopencv_flann.so.2.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libopencv_flann.so.2.4
Reading symbols from /usr/local/lib/libopencv_features2d.so.2.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libopencv_features2d.so.2.4
Reading symbols from /usr/lib/i386-linux-gnu/libfontconfig.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libfontconfig.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libaudio.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libaudio.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libfreetype.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libfreetype.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libSM.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libSM.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libICE.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libICE.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXi.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXi.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXrender.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXrender.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXext.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXext.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libX11.so.6
Reading symbols from /lib/ld-linux.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/ld-2.15.so...done.
done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.20...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.20
Reading symbols from /usr/lib/nvidia-331/libnvidia-glcore.so.331.20...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/nvidia-331/libnvidia-glcore.so.331.20
Reading symbols from /lib/i386-linux-gnu/libdl.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/libdl-2.15.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/libdl.so.2
Reading symbols from /usr/lib/libImath.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libImath.so.6
Reading symbols from /usr/lib/libIex.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libIex.so.6
Reading symbols from /usr/lib/libIlmThread.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libIlmThread.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxml2.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libffi.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libffi.so.6
Reading symbols from /lib/i386-linux-gnu/libpcre.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libpcre.so.3
Reading symbols from /usr/lib/i386-linux-gnu/libgstbase-0.10.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgstbase-0.10.so.0
Reading symbols from /usr/lib/i386-linux-gnu/liborc-0.4.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/liborc-0.4.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libraw1394.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libraw1394.so.11
Reading symbols from /lib/i386-linux-gnu/libusb-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libusb-1.0.so.0
Reading symbols from /usr/local/lib/libv4l2.so.0...done.
Loaded symbols for /usr/local/lib/libv4l2.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libogg.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libogg.so.0
Reading symbols from /lib/i386-linux-gnu/libexpat.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libexpat.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXt.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXt.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXau.so.6
Reading symbols from /lib/i386-linux-gnu/libuuid.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libuuid.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libxcb.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxcb.so.1
Reading symbols from /usr/local/lib/libv4lconvert.so.0...done.
Loaded symbols for /usr/local/lib/libv4lconvert.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libXdmcp.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXdmcp.so.6
Reading symbols from /usr/lib/i386-linux-gnu/gconv/UTF-16.so...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/gconv/UTF-16.so...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/gconv/UTF-16.so
Reading symbols from /usr/lib/libicui18n.so.48...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicui18n.so.48
Reading symbols from /usr/lib/libicuuc.so.48...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicuuc.so.48
Reading symbols from /usr/lib/libicudata.so.48...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicudata.so.48
Failed to read a valid object file image from memory.
0x074444a2 in ?? () from /usr/lib/i386-linux-gnu/libfontconfig.so.1
(gdb)

2

Решение

Ошибка сегментации возникает, когда функция cvCreateFileCapture
иногда вызывается с использованием сетевого URL-адреса в качестве аргумента.
Аргументом является файл на диске.

По признаку проблемы ваша программа испытывает какое-то повреждение памяти. В целом
вероятность выполнения сетевого потока URL-адресов (переполнение / перезапись памяти)
и похоже, что вы можете воспроизвести эту проблему, если вы используете сетевой URL пользователя. Однако, пожалуйста, не думайте, что если URL — это файл на диске (локально), у него нет проблем. Может быть также, что коррупция происходит таким же образом, просто эффект откладывается. Проблемы с повреждением памяти так сложно отладить, и нет простых шагов для их выявления без тщательного анализа нашей программы.

Глядя на трассировку стека, было бы почти невозможно выяснить, что может быть основной причиной этого, так как эти ошибки сегментации могут быть следствием чего-то действительно плохого, сделанного программой в раннем исполнении.

Лучший способ идентифицировать эти повреждения памяти — использовать некоторые динамические инструменты вместе с
отладчик (WinDBG / PageHeap на винде). Судя по вашему вопросу (ошибка сегментации), похоже, что вы работаете на платформе Linux. Таким образом, вы можете прикрепить вашу программу (a.out) в Valgrind / GDB.

$ valgrind --tool=memcheck --db-attach=yes ./a.out

Таким образом, Valgrind будет прикреплять вашу программу в отладчике, когда ваша первая ошибка памяти
обнаружен, так что вы можете сделать живая отладка(GDB). Это должен быть лучший способ понять и решить вашу проблему. Как только вы сможете выяснить свою первую ошибку, исправьте ее, перезапустите и посмотрите, какие другие ошибки вы получаете. Эти шаги следует выполнять до тех пор, пока Valgrind не сообщит об ошибке.

4

Другие решения

добавлять cvWaitKey(100); перед cvQueryFrame(); функция.

0

Если вы находитесь в среде Linux, вы можете использовать valgrind, чтобы точно определить, где происходит ошибка сегментации. Просто введите valgrind перед названием программы или способом ее выполнения. Например, если вы выполняете свою программу с помощью следующей команды:

привет-отпечаток

вместо этого введите следующую команду:

валгринд привет -принт

Вы также можете «заправить» свой код различными инструкциями cout или printf и наблюдать последний вывод перед ошибкой сегментации. Если программа большая, этот метод может быть более громоздким / менее полезным. Вы можете сделать это прямо перед и сразу после каждого места, где cvCreateFileCapture появляется в вашей основной функции, чтобы выяснить, где это происходит. Если cvCreateFileCapture является частью opencv, это может показаться ошибкой в ​​opencv!

0

Проверьте этот код C ++,

VideoCapture vcap;
Mat image;
const string videoStreamAddress = "rtsp://IPaddress:Port/Path?dummy=param.mjpg";//

//open the video stream and make sure it's opened
if(!vcap.open(videoStreamAddress)) {
cout << "Error opening video stream or file" << std::endl;
return -1;
}

for(;;) {
if(!vcap.read(image)) {
cout << "No frame" << std::endl;
waitKey();
}
imshow("Output Window", image);
if(waitKey(1) >= 0) break;
}

И убедитесь, что ваш поток не защищен паролем.

0

gst_caps_unref <- AFAIK память этой функции free используется объектом gst. Я хотел бы, чтобы вы запустили ваше приложение под valgrind, но с помощью следующей команды:
valgrind --leak-check=full ./a.out, И приложите его вывод вместо того, который у вас есть в настоящее время (он будет более информативным, уверяю вас). Вполне возможно, что ваша ошибка не будет воспроизводиться в Valgrind, поскольку она предоставляет что-то вроде «частной памяти» для программы. В этом случае я бы порекомендовал вам получить cgdb (отличный интерфейс для gdb) и отлаживайте свою программу под ним (проверьте значения переменных, возможные нулевые указатели, удаления итд.)

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector