快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → linux下的C++程序调试过程笔记:CMAKE+GDB

linux下的C++程序调试过程笔记:CMAKE+GDB

时间:2022-09-28 16:51:21人气:作者:快盘下载我要评论

linux下的C++程序调试过程笔记:CMAKE+GDB

mkdir build
cd build
cmake ..
make

gcc -g file.c -o filename
g;; -g file.cpp filename

linux下的C++程序调试过程笔记:CMAKE+GDB

在使用GDB的过程中;使用ctrl;x,ctrl;a可以切换成上面是源文件的格式;然后方便进行调试
运行程序使用run命令或者使用简写r
查看变量数值;print var1;或者使用简写p var;
设置断点;
break 21 第21行
break fun 在fun处设置断点;也常常用命名空间;;类名;;函数名称;
continue 继续执行;直到下次断点
next 单步执行 之后通过回车键来进行单步的执行;简写为n;
设置断点触发条件;break 21 if var1==var2
查看断点信息info b或者是info break
跳出循环的方法;UNTIL 行号
bt查看函数的堆栈

linux下的C++程序调试过程笔记:CMAKE+GDB

    PROJECT(test)               #项目的名称
    CMAKE_MINIMUM_REQUIRED(VERSION 2.6)   #最低的Cmake版本要求
    AUX_SOURCE_DIRECTORY(. DIR_SRCS)      # 将所有的源文件变量放进变量中;这个更多的用在指明文件上
    SET(FRAME_PATH ../frame)  #设置环境变量,这个更多的是用在了路径变量上
    
    #设置进行编译时候的命令;这里分出来两个;DEBUG和RELEASE;
    SET(CMAKE_CXX_FLAGS_DEBUG ;$ENV{CXXFLAGS}  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE  -O0 -W -g  -DDEBUG_CHG;)
    SET(CMAKE_CXX_FLAGS_RELEASE ;$ENV{CXXFLAGS}  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -O3 -w  -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -lpthread;)
    
    #指明build_type
    SET(CMAKE_BUILD_TYPE ;Release
    
    #这个部分声明指明了编译条件
    IF (CMAKE_BUILD_TYPE STREQUAL ;Debug;)  #if语句
        MESSAGE(STATUS ;Debug Mode;)
        MESSAGE(STATUS ;Flags:; ${CMAKE_CXX_FLAGS_DEBUG} )
    ELSEIF (CMAKE_BUILD_TYPE STREQUAL ;Release;)
        MESSAGE(STATUS ;Release Mode;)
        MESSAGE(STATUS ;Flags:; ${CMAKE_CXX_FLAGS_RELEASE})
    ENDIF (CMAKE_BUILD_TYPE STREQUAL ;Debug;)  
    ;)
    
    # 设置链接的库 存在变量中;这个是项目使用的;前提是确保让程序可以找到这个库;比如使用系统的环境变量导出;
    SET(LD_LIBS
    hiredis
    glog
    tcmalloc_minimal
    )
    
    SET(BOOST_LIBS
    boost_filesystem.a
    boost_thread.a
    boost_system.a
    boost_regex.a
    boost_serialization.a
    )
    
    INCLUDE_DIRECTORIES(    #头文件所在的路径
    ./
   ./test/include
   ./reco 
  $ {FRAME_PATH}    
   )
   
    ADD_EXECUTABLE(test   #添加要编译的可执行文件
    ${HTTP_SERVER_SRCS}
    ${SEGMENT_SRCS}
    ${SERVERS_SRCS}
    )
   
    # 实际进行链接的命令
    TARGET_LINK_LIBRARIES( test ${LD_LIBS} )    #添加可执行文件所需要的库;比如我们用到了libm.so;命名规则;lib;name;.so;;就添加该库的名称
    TARGET_LINK_LIBRARIES( test ${BOOST_LIBS} )
    SET(EXECUTABLE_OUTPUT_PATH ./bin)  #设置输出的可执行的文件的路径

linux下的C++程序调试过程笔记:CMAKE+GDB

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。