Невозможно отладить двоичный файл после сборки из cmake - PullRequest
0 голосов
/ 01 ноября 2018

Я использую cmake для сборки отладочной версии через cmake -DCMAKE_BUILD_TYPE=Debug ..

Я получил CMakeCache.txt, CMakeFiles, Makefile, cmake_install.cmake файлы / папки и скомпилированный двоичный файл, скажем test , в папке сборки.

когда я запускаю GDB gdb ./test, я получаю следующее

GNU GDB (GDB) 8.0.1 Copyright (C) 2017 Free Software Foundation, Inc.

Лицензия GPLv3 +: GNU GPL версии 3 или более поздней http://gnu.org/licenses/gpl.html

Это бесплатное программное обеспечение: вы можете свободно изменять и распространять его.

ГАРАНТИЯ НЕ ПРЕДОСТАВЛЯЕТСЯ, если это разрешено законом.

Введите «Показать копирование» и «Показать гарантию» для подробности. Эта GDB была настроена как "x86_64-apple-darwin17.0.0". Тип «Показать конфигурацию» для деталей конфигурации.

Инструкции по сообщению об ошибках см. На http://www.gnu.org/software/gdb/bugs/.

Онлайн-руководство GDB и другие источники документации можно найти по адресу: http://www.gnu.org/software/gdb/documentation/.

Для получения справки введите «help».

Введите "apropos word" для поиска команд, связанных с "word" ...

BFD: / Users / sln / Project / repos / C ++ / Primer / debug / test: неизвестно команда загрузки 0x32

BFD: / Users / sln / Project / repos / C ++ / Primer / debug / test: неизвестная команда загрузки 0x32

"/ Users / sln / Project / repos / C ++ / Primer / debug /./ test": не в исполняемом файле формат: формат файла не распознан

И я добавляю точку останова к основной функции на (gdb) break main, и следующее сообщение было распечатано

Таблица символов не загружена. Используйте команду «file».

Сделать точку останова ожидаемой при будущей загрузке совместно используемой библиотеки? (у или [н])

По вводу y на верхний вопрос я получил

Ожидание точки останова 1 (основной).

Тогда (gdb) run команда выдает ошибку

Запуск программы:

Не указан исполняемый файл.

Используйте команду "file" или "exec-file".

И, наконец, (gdb) file приводит к

Нет исполняемого файла сейчас.

Нет файла символов.

Вопрос: Интересно, какая часть была неправильной?

Вот мой файл CmakeList.txt

cmake_minimum_required(VERSION 2.8)
project(Test)
set(CMAKE_CXX_STANDARD 11)

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Release)
endif()

add_executable( test
    ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/src/test_nav.h
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...