当前位置: 首页 > 面试题库 >

警告:禁用地址空间随机化时出错:不允许操作

丘智志
2023-03-14
问题内容

我做错了(或没有做过)gdb对我而言无法正常工作?

root@6be3d60ab7c6:/# cat minimal.c 
int main()
{
  int i = 1337;
  return 0;
}
root@6be3d60ab7c6:/# gcc -g minimal.c -o minimal
root@6be3d60ab7c6:/# gdb minimal
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
.
.
.
Reading symbols from minimal...done.
(gdb) break main
Breakpoint 1 at 0x4004f1: file minimal.c, line 3.
(gdb) run
Starting program: /minimal 
warning: Error disabling address space randomization: Operation not permitted
During startup program exited normally.
(gdb) 
(gdb) print i   
No symbol "i" in current context.

问题答案:

如果您使用的是Docker,则可能需要该--security-opt seccomp=unconfined选项(以及启用ptrace):

docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined


 类似资料:
  • 问题内容: 我正在尝试调试使用很多指针的二进制文件。有时为了快速查看输出以找出错误,我打印了对象的地址及其对应的值,但是对象地址是随机的,这违背了快速检查的目的。有没有一种方法可以暂时/永久禁用此功能,以便每次运行程序时都获得相同的值。 哎呀。操作系统是 问题答案: 在Ubuntu上,可以使用…禁用它。 在Windows上,这篇文章可能会有所帮助… http://blog.didiersteven

  • 问题内容: 我正在为并行程序开发一个运行时系统,该程序可以利用跨多个进程的公共地址空间布局,并有可能分布在多个(千个)节点上。很多时候,为此环境构建的软件在默认情况下启用了地址空间随机化的Linux系统上运行,用户可能不希望或无法在系统范围内(通过等)禁用它。这对并行程序施加了一些限制,并可能损害性能。因此,我们想弄清楚如何针对我们构建的二进制文件禁用它。安全性不是问题,因为此软件始终在受控环境中

  • 问题内容: 我想在我的系统(Ubuntu Gnu / Linux 2.6.32-41-server)上禁用地址空间布局随机化(ASLR),但是,如果使用 我认为,更改将影响系统上的所有用户。(这是真的吗?)如何将禁用ASLR的影响仅限于自己作为用户使用,或者仅限于在我调用该命令禁用的Shell会话中进行? 顺便说一句,我看到系统的当前(默认)设置是 为什么选择2,而不是1或3?在哪里可以找到有关/

  • 这是我的tailwindcss错误: npm WARN@tailwindcss/custom-forms@0.2.1需要tailwindcss@^1.0的对等体,但未安装任何对等体。您必须自己安装对等项依赖项。 npm WARN@tailwindcss/typography@0.2.0需要tailwindcss@^1.5.0的对等体,但未安装任何对等体。您必须自己安装对等项依赖项。 npm WAR

  • 地址空间 分段机制涉及5个关键内容:逻辑地址(Logical Address,应用程序员看到的地址,在操作系统原理上称为虚拟地址,以后提到虚拟地址就是指逻辑地址)、物理地址(Physical Address, 实际的物理内存地址)、段描述符表(包含多个段描述符的“数组”)、段描述符(描述段的属性,及段描述符表这个“数组”中的“数组元素”)、段选择子(即段寄存器中的值,用于定位段描述符表中段描述符表

  • 问题内容: 这与为什么为什么不接受(&)映射成员的地址而允许(&)slice元素相同?但我对接受的答案不满意:“切片由后备数组支持,而映射则不支持。” 注意:现在,我已对上面提到的问题添加了自己的答案。 Map中的Access Struct问题(不带复制)甚至更好,但是它被接受的答案是您不能修改map中的struct值字段,因为您无法获取其地址(这是我的问题)。 就像切片一样,映射由内存结构(可能