Backtrace_symbols может видеть весь стек, но gdb backtrace не можетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Backtrace_symbols может видеть весь стек, но gdb backtrace не может

Сообщение Anonymous »

У меня есть два отдельных проекта C++ CMake: библиотека и приложение. Оба созданы в режиме отладки с помощью

Код: Выделить всё

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3 -O0 -fno-inline -fno-omit-frame-pointer -fasynchronous-unwind-tables -funwind-tables")
и по мере выполнения программы в gdb/CLion я вижу текущий кадр стека и указатель this. Две проблемы:
  • иногда локальные переменные не отображаются в поле «Потоки и переменные» CLion, хотя, если я помещаю имя локальной переменной в поле «Оценить выражение», это дает правильное значение.
  • текущий кадр стека виден, но когда я ввожу новую функцию, предыдущий кадр стека удаляется из стека
Вторая проблема может быть связана с пересечением границы библиотеки/приложения.

Код: Выделить всё

backtrace_symbols
может видеть весь стек, но команда backtrace gdb не может.

Подробнее здесь: https://stackoverflow.com/questions/797 ... trace-cant
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»