编译c++程序,gdb报如下错误:

Error disabling address space randomization: Operation not permitted

百度查询,说是docker容器构建问题,需要加参数重新创建容器,确实,我的程序是在docker中运行的,同时也准备使用gpu,但是还没有接入相关代码,所以我觉得不是这个问题。

在试试的状态下解决这个问题,没有线索进行分析

我的vscode打开的文件夹是a,a/b文件夹下是源码,顶层CMakeLists.txt在b目录下

重新vscode打开文件夹b,编译代码,使用gdb正常

结论

所以,造成以上错误的原因就是vscode打开的文件夹非最后一层的源码目录,不知道此结论是不是正确结论。