一些Clion使用记录

编译链设置

在设置“工具链”中可以按需增加不同的编译链

访问越界溢出debug

AddressSanitizer介绍:AddressSanitizer

交的lab在本地运行没问题,助教测试没通过,询问原因——访存越界如下:



但是本地Clion运行又没有报错,于是借助了clion里面打开address sanitizer检查bug。但是自己折腾了挺久都没在windows环境中解决使用address sanitizer的一个报错问题,如下信息提示缺少一个 lasan库

FAILED: XXXXX.exe
cmd.exe /C "cd . && "D:\Program Files\JetBrains\CLion 2022.1\bin\mingw\bin\g++.exe" -fsanitize=address -g -g CMakeFiles/SEP_lab6.dir/boggle2.cpp.obj CMakeFiles/SEP_lab6.dir/lexicon.cpp.obj -o SEP_lab6.exe -Wl,--out-implib,libSEP_lab6.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
D:\Program Files\JetBrains\CLion 2022.1\bin\mingw\bin/ld.exe: cannot find -lasan
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

网上很多教程都是在linux环境使用clion结合sanitizer,于是自己在虚拟机中使用clion,找到了当时的bug。出于好奇和偷懒,想在windows的环境使用clion,连接本地wsl使用sanitizer来debug。

具体过程:

  1. 在工具链中增加“WSL”,见上图
  2. 在设置Cmake中增加一项使用wsl的配置文件

  1. CMakeList.txt文件中增加,设置参考官方Clion手册 Google sanitizers或者Clang配置

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g")

  1. 使用新的配置选项开始运行

  1. 查看报错信息

Clion连接容器开发

还是通过ssh连接容器linux环境,配置方法参考下文

windows配置ssh:https://www.jianshu.com/p/04e64bfcc79b

ubuntu18.04配置ssh:[(87条消息) 如何在Ubuntu上开启SSH服务_枫★曦的博客-CSDN博客_ubuntu开启ssh]

(87条消息) Clion与Docker的C\C++调试环境_不霁何虹丶的博客-CSDN博客_clion docker 虚拟机调试

  1. 在clion的设置中连接ssh

  1. 增加编译运行配置

  1. 切换运行配置

  1. 运行效果

踩坑:

  1. ssh连接密码默认均为系统管理员登录,由于自己各种密码总是忘,大部分时间花在了尝试ssh连接密码和试图修改密码上

  2. 各种尝试、折腾都是起源于发现确实linux的开发环境更加方便,一开始作业lab有个bug,在windows Clion中直接运行程序正确没发现异常,助教机器运行失败,原因是访存越界,但是clion一开始没报错,助教建议试试address sanitizer,但是自己在windows中使用失败,在虚拟机解决bug后,就开始想把以后的lab、作业都能用clion之类的IDE连接到VM虚拟机、容器或者WSL中运行、开发

  3. 其实使用VS Code能轻松连接WSL、容器以及(ssh)远程服务器,但是Cmake项目自己比较喜欢Clion的界面和debug的界面,所以折腾了一下

  4. 下次补上Visual Studio的配置记录和连接开发方法

一些Clion使用记录的更多相关文章

  1. windows 下使clion支持c++11操作记录

    最近用上了windows下的clion,发现默认安装的MINGW版本太低,导致所带的gcc版本竟然是3.5的,实在太老了,不支持c++11,于是手动修改了mingw的版本.首先去mingw的官网下载最 ...

  2. Mac使用Clion配置OpenGL

    Mac使用Clion配置OpenGL 之前博主是用Xcode配置的openGL,但后来因为要与非Mac队友合作,于是大家决定统一使用Clion,博主于是再次配置开发环境,这里记录一下 预先准备 Mac ...

  3. Win10下Clion配置opencv3

    本人不想在爱机装一个vs2013或者vs2015这种庞然大物,可是手头要弄一个基于windows的opencv项目,就只好装了个Clion,期间踩了不少坑,记录一下. 参考网址:http://www. ...

  4. 新手如何正确使用CLion之输出hello world

    以前只使用过vc6.0,在用过jetbrain的pycharm后就考虑换个c++的编译器了,第一还是考虑了vs2017但用惯了色彩鲜艳的jb产品后竟然有点不习惯vs,最后还是果断选择了jb的CLion ...

  5. CLion注冊码算法逆向分析实录(纯研究)

    声明 CLion程序版权为jetBrains全部.注冊码授权为jetBrains及其付费用户全部,本篇仅仅从兴趣出发,研究其注冊码生成算法. 不会释出不论什么完整的源码. 网上查了下.已有注冊机,所以 ...

  6. 使用Clion优雅的完全远程自动同步和远程调试c++

    摘要:在linux上用vim写C++的时候,通常用gdb进行调试,不能随心所欲的看代码和跳转代码以及加watch(也有可能是因为我还没有get正确的使用方法).为此我发现Clion可以做到自动同步本场 ...

  7. JVM 源码分析(二):搭建 JDK 8 源码调试环境(Windows 上使用 CLion)

    前言 一.准备源码 二.安装 "Bootstrap JDK" 三.配置编译环境 四.编译与测试 五.安装 CMake 和 GDB 五.准备远程调试 六.开始远程调试 前言 上一篇文 ...

  8. mac下用clion进行sdl2游戏开发de环境搭建

    1. 故事背景 想从unity转unreal了,于是要使用c++进行开发.unreal引擎那么大,每次打开,我的小本都嗡嗡嗡的,想着不如用个轻量一些的引擎先开发吧,核心代码独立出来,到时候如果真要移植 ...

  9. clion结合vcpkg以及GTest的使用

    目录 一.vcpkg简介.下载和使用 1. vcpkg是什么 2. vcpkg下载 3. 使用vcpkg下载第三方库 二.clion结合vcpkg 1. 方法一:使用环境变量 2. 方法二:添加cma ...

  10. git与github(结合clion操作)

    对自己学习git的一个记录,由于刚开始接触git,所以没有对于git做深入解释和说明,仅供参考,如有理解不对的地方或者需要改进的地方敬请指出.   用到的git命令: git init //初始化 g ...

随机推荐

  1. 开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA、ChatGLM、UDA、GPT2等模型,开箱即用

    开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA.ChatGLM.UDA.GPT2等模型,开箱即用 1.介绍 TextGen实现了多种文本生成模型,包括:LLaMA.ChatGLM.UDA ...

  2. 小样本学习在文心ERNIE3.0多分类任务应用--提示学习

    小样本学习在文心ERNIE3.0多分类任务应用(提示学习) 项目链接: https://aistudio.baidu.com/aistudio/projectdetail/4438610?contri ...

  3. 20.6 OpenSSL 套接字分发RSA公钥

    通过上一节的学习读者应该能够更好的理解RSA加密算法在套接字传输中的使用技巧,但上述代码其实并不算完美的,因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果,而一旦公 ...

  4. Vite4+Typescript+Vue3+Pinia 从零搭建(2) - ts配置

    项目代码同步至码云 weiz-vue3-template 关于tsconfig的配置字段可查看其他文档,如 typeScript tsconfig配置详解 tsconfig.json 文件修改如下: ...

  5. Odoo—货运管理—主表获取明细表数据计算结果

    在开发货运管理模块的时候,用到了两张表:主表[waybill]和明细表[waybill.detail],主表存放运单主体信息,明细表存放运单货物信息,如下图所示. 上图中红色方框标记的是明细表中行内的 ...

  6. 使用了未经检查或不安全的操作。 有关详细信息, 请使用 -Xlint:unchecked 重新编译

  7. NC24416 [USACO 2013 Nov G]No Change

    题目链接 题目 题目描述 Farmer John is at the market to purchase supplies for his farm. He has in his pocket K ...

  8. Nand flash基本原理

    Nand flash基本原理       Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Vol ...

  9. STM32F401+nRF24L01无线传输音频(对讲机原型)

    尝试结合STM32F401的ADC, PWM, SPI(NRF24L01)和TIM, 试验了一下音频的无线传输(对讲机原型) 工作机制 音频采样 因为硬件的限制, 包括STM32F401片内存储, 内 ...

  10. Swoole从入门到入土(15)——WebSocket服务器[初步接触]

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.换句话说,Websocket让web可以与服务端实现长连接. 在Swoole中,通过内置的 WebSock ...