gdbserver 配合 clion 实现远程调试
远程机器环境
gcc
gcc-c
gdb
gdbserver
cmake
上面这些工具都可以使用 yum install
进行安装(linux环境)
工具安装完成之后,新建你的工作目录。如:/root/workspace/c/sock_exp
, 这就是我们的项目代码
本地项目和clion配置
首先使用clion新建项目,并且对其进行设置,从而使其可以和远程机器进行代码同步。(本地使用mac系统)
-
项目新建在
/users/my/workspace/c/sock_exp
. - 使用sftp和远程机器进行代码同步。过程如下
项目新建完成,并且也能和远程机器进行同步之后。开始将我们的项目代码同步到远程机器上面。
注意: 用clion新建的项目会自动生成cmakelist.txt 文件。所以在远程机器上可以使用
cmake
来构建项目,然后使用make
来编译。 在使用cmake
构建项目的时候,可能由clion自动生成的cmakelist.txt文件中要求的cmake版本高于远程机器上的cmake
版本。我们可以自己修改cmakelist.txt使其符合远程机器上的cmake
版本。代码如下
cmake_minimum_required(version 2.6)
远程机器编译项目
首先进入/root/workspace/c/sock_exp
,新建 build
目录。 然后进入该目录
$ cd /root/workspace/c/sock_exp
$ mkdir build
$ cd build
$ cmake .. -dcmake_build_type=debug # -dcmake_build_type=debug 用来指定编译后的程序支持使用gdb进行调试
$ make
执行完之后,就会在build目录下生成编译的文件和可执行的命令。 然后使用gdbserver来开启远程调试服务
$ gdbserver :9002 /root/workspace/c/sock_exp/build/sock_exp
程序在9002端口上进行监听。
本地clion配置远程调试
在clion上进行配置如下
完成配置之后,在相应的地方加上断点,然后点击debug按钮即可进行远程调试。
上面整个过程中会用到
cmake
技术。当然,对于很简单的项目可以直接使用 gcc 加上 -g 选项进行编译,同样也可以使程序支持调试。 但是对于复杂的项目就需要借助 cmake和 make来进行构建和编译项目了。 cmake 和 makefile 的知识不是这里的重点,上面只是一个配置远程调试的过程。对于这些知识后续会继续学习。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2023/03/17 浏览次数:190 分类:编程语言
-
本教程演示了如何在 bash 脚本中运行 gdb,该脚本带有一个接受命令行参数的二进制文件。
发布时间:2021/07/06 浏览次数:366 分类:操作系统
-
解决 mac 系统下 gdb调试的问题,在mac系统下,初次使用gdb的时候可能会遇到下面的错误:unable to find mach task port for process-id 26551
如何使用 clion 开发调试 php 扩展
发布时间:2021/07/02 浏览次数:287 分类:php
-
php 扩展的创建这里就不再赘述,使用ext_skel 生成一个框架,然后编辑相应的文件,编译安装,最后在php.ini 配置文件中加入生成的扩展 例如 my_ext.so
mac系统使用 clion远程调试redis4源码
发布时间:2021/05/08 浏览次数:206 分类:redis
-
本篇介绍在mac系统下使用clion对redis进行远程源代码调试。主要适用sftp同步代码,gdbserver开启远程调试服务。linux作为redis运行的远程服务器。
如何在mac系统下使用clion调试redis源码
发布时间:2021/04/29 浏览次数:573 分类:redis
-
本篇主要介绍在mac系统下如何使用clion调试redis的源码。clion主要使用的是`cmake` `make` 进行编译。所以对于redis4来说,主要的就是先编写 cmakelists.txt 文件