LINUX.ORG.RU

Отладчик указывает позиции в коде, не соответствующие действительности.

 , ,


0

1
  • GNU gdb (GDB) Fedora 12.1-1.fc35
  • g++ (GCC) 11.3.1 20220421 (Red Hat 11.3.1-3)
  • cmake version 3.24.2 (by Kitware)
  • Qt Creator 9.0.0 based on Qt 6.4.1
  • Проект на C++, собирается c со строкой в симейклисте set(CMAKE_CXX_FLAGS «-std=c++17 -O0 -Wall -fmessage-length=0»)

Проект полностью очищен, cmake с нуля, сборка с нуля. Во время отладки среда тычет не в те строки в тексте, в стэке вызовов одно, а курсор (номер строки в том же стэке вызовов) указывает в другое. Из под самостоятельного запуска gdb пишет, что «Missing separate debuginfos …». За день до этого всё работало отлично, сегодня включил машину и такое. Не знаю как исправить эти отладочные символы, куда смотреть.

★★★

Может ты дебажишь бинарники, которые не соответствуют исходнику, который видишь?

rumgot ★★★★★
()

Случайно переключился на релизную версию? QtCreator любит полностью убирать символы из релиза, хотя смысла сейчас в этом нет.

raspopov
()
Ответ на: комментарий от rumgot

Может ты дебажишь бинарники, которые не соответствуют исходнику, который видишь?

Проверял, исходники с бинарниками сходятся.

normann ★★★
() автор топика

А хде -g Ну и лучше задать как-тот так:

SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
SET(CMAKE_CXX_FLAGS_DEBUG  "-Og -g")
AlexVR ★★★★★
()
Ответ на: комментарий от raspopov

Случайно переключился на релизную версию?

Нет, стоит конфигурация «Отладка».

normann ★★★
() автор топика
Последнее исправление: normann (всего исправлений: 1)
Ответ на: комментарий от AlexVR

А хде -g

Там передаётся через -DCMAKE_BUILD_TYPE=Debug

normann ★★★
() автор топика

Решена проблема. Снял галку с пункта «Добавить путь к собираемой библиотеке в LD_LIBRARY_PATH» в настройках конфигурации проекта. Оказывается среда зачем-то туда в первых рядах помещала левый путь, по которому располагались старые версии собранных бинарников. Спасибо за ответы.

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

Галку верни обратно, просто снеси старые версии бинарников, чтобы не мешались. А то следующий вопрос будет «ПАМАГИТЕ, не запускается».

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

Мне эта галка не нужна, а библиотеки нужны там.

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

Ну в целом логично. Симптомы были именно несоответствия исходника бинарнику.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

как он без опции «-g» вообще что-то показывал? эта опция вставляет отладочную инфу в бинарник.

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

Он не был без опции -g, её вставляет cmake.

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

Судя по твоей реакции, ты похоже не вполне понимаешь как работает линковка и для чего нужен LD_LIBRARY_PATH. На всякий случай советую ознакомиться, инфы полно.

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

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

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

не зазорно

Зазорно, ты не знаешь инструмент, которым пользуешься. Галочку таки верни. Если у тебя от неё проблемы, то скорее всего структура директорий кривая. Это проблема, которую нужно исправлять. А не галки снимать.

вот не знать линковку

Это ты сам придумал.

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