Первый раз при переполнении стека. Я пытаюсь воспроизвести пример, который я нашел в Интернете, для пользовательского безрамного окна с пользовательским заголовком. Вот веб-сайт (я должен был использовать перевод Google, чтобы иметь возможность читать его на английском языке) http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/Получение SIGSEGV
Я бегу ubuntu 16.04, используя создателя QT в качестве моей IDE. У меня последняя версия с 64-разрядной версией.
Я сделал 3.2 и до перехода к 3.3. Я получаю SIGSEGV в строке, где он говорит: Удалить m_Cache;
все компилируется при запуске в отладчике SIGSEGV. Я знаю, что это ошибка вне диапазона, но не знаю почему. Любые предложения или помощь будут оценены наиболее высоко.
Thx заранее!
Скорее всего m_Cache является недопустимым указателем (т.е. он не является NULL, но указывает на ячейку памяти, которая не содержит действительный C++ объект, который был ранее выделенный с новым оператором). Одной из распространенных причин этого является попытка удалить один и тот же объект более одного раза. Другой общей причиной было бы пренебречь инициализацией указателя на допустимое значение (например, NULL или объект, выделенный новым) перед его удалением. –
Я кратко просмотрел этот код - я уверен, что segfault исчезнет, если вы просто инициализировали 'm_Cache' нулевому указателю:' QPixmap * m_Cache = nullptr; ' – qxz
Используйте' valgrind'. – Velkan