背景
最近在学习Linux内核体系知识,需要C的一个编译环境。但是由于笔者使用环境为MacOS,并非使用的Linux体系操作系统,在进行内核编程的时候就无法调用linux系统函数;然后在折腾了一遍ubuntu虚拟机、实体机(显卡问题)后,意外发现了CLion的远程调试功能。
构建远程编译环境
CLion的远程运行环境需要如下程序:
- rsync(for macos or linux locally)
- sftp & gzip(for windows locally)
- CMake(2.18.x-3.14.x)
- Make
- C compiler
- C++ Compiler
- GDB(7.x-8.x)
安全完成后,配置如下:
配置远程调试:
配置认证:
完成配置后,会自动同步一次源文件到/tmp目录下的某个临时文件夹内。
注意:如果需要重新同步,只需要右键项目,选择Reload CMake Project
即可。
远程调试原理
CLion的远程调试基于文件传输以及GDB服务:
- 上传项目目录至远程服务器【mac或者linux使用rsync,windows使用sftp和gzip同步程序】
- 远端检索所有头文件,并下载缓存到本地的
.remote/${ip}_${port}/
文件夹下 - Debug的时候,同步Debug标记文件和二进制文件【具体单点调试步骤未知,TODO】