LINUX.ORG.RU

Debugging with QtCreator: содержимое this недоступно

 , ,


0

2

Привет, эксперты. Столкнулся с такой проблемой. Есть класс, одним из его полей является структура. У структуры есть методы, которые в ходе работы программы вызываются.

При отладке, если поставить брейкпоинт внутри метода структуры, при остановке программы в этом месте, в отладочной сводке (в правой части IDE) можно посмотреть только значения локальных переменных текущего метода. Содержимое указателя this (т.е. указателя на упомянутый класс) помечено как not accessible.

Улетел за полстраны, захватив с собой кое-какой код, который хотел поковырять, водрузил фреймворк и IDE на доступный комп, а тут такая засада с отладкой. На рабочем компе отладчик всё прекрасно показывал, такой фигни вообще никогда не возникало.

Как бы это дело починить?

QtCreator 4.9.2, Qt 5.12.2, g++ 8.3.0, gdb 8.2.91



Последнее исправление: s3rjke (всего исправлений: 3)

Ответ на: комментарий от pon4ik

Вся программа представляет собой один-единственный виджет (дефолтный Qt-шный шаблон проекта). Метод структуры, которая является полем класса этого виджета, вызывается в момент нажатия на кнопку на виджете.

Затрудняюсь понять, какая из этих сущностей в этот момент может быть освобождена или не выделена.

s3rjke
() автор топика

Может быть метод заинлайнился? Попробуй внутри метода сохранить указатель на this. qDebug, чтобы компилятор не выкинул неиспользуемую переменную.

auto tmp = this;
qDebug() << tmp;

ox55ff ★★★★★
()
Ответ на: комментарий от s3rjke

Что-то странное. У тебя в режиме отладки внизу есть стектрейс. Пошарься по нему. Список локальных переменных будет соответствующим образом меняться. А так я хз. Такое у себя не припомню, хотя каждый день работаю с отладчиком в QtCreator.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Починилося! Пока гуглил эту тему в каких-то ссылках упоминались статические переменные, типа с ними какие-то проблемы. Оказалось, у меня в структуру затесалась парочка таких, которые так и не пригодились.

Убрал их и всё стало норм. Эх, щас бы пытаться пользоваться головой после ночного перелёта...

s3rjke
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.