从cmake构建后无法调试二进制文件

时间:2018-11-01 15:25:35

标签: c++ macos cmake gdb

我正在使用cmake通过cmake -DCMAKE_BUILD_TYPE=Debug ..

构建调试版本

我在构建文件夹中获得了 CMakeCache.txt,CMakeFiles,Makefile,cmake_install.cmake 文件/文件夹和编译后的二进制文件,例如 test

当我通过gdb ./test启动gdb时,得到了以下结果

  

GNU gdb(GDB)8.0.1版权所有(C)2017自由软件基金会,

     

许可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/

     

要获取帮助,请键入“帮助”。

     

输入“ 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在主函数中添加断点,并打印出以下消息

  

没有加载符号表。使用“文件”命令。

     

在将来的共享库加载中使断点挂起吗? (y或[n])

在我得到的上一个问题上输入y

  

断点1(主要)待处理。

然后(gdb) run命令给出错误

  

启动程序:

     

未指定可执行文件。

     

使用“文件”或“执行文件”命令。

最后(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
)

0 个答案:

没有答案