繁体   English   中英

错误“Segmentation fault(core dumped)”是什么意思?

[英]What does the error “Segmentation fault(core dumped)” mean?

我正在尝试使用汇编程序编码实现一个 for 循环,并且在每次迭代中都应该打印寄存器 edi 的值。 当我尝试执行我的代码时,我收到错误“分段错误(核心转储)”。 有人可以告诉我这个错误是什么意思,我的代码中是否有任何错误?

section .text
         global _start

_start:
        xor edi,edi

loop:    
        add edi,'0'
        
        ;print i
        mov edi,1
        mov esi,1
        mov ecx,[edi]
        mov edx,1
        syscall
        
        sub edi,'0'
        
        inc edi   
        cmp edi,5
        jl loop

这意味着您试图以不允许的方式访问地址空间。 例如:

  • 您可能已尝试写入只读位置

  • 您可能曾尝试从只写位置读取

  • 您可能曾尝试从未设置执行权限的位置执行代码

  • 您可能试图从根本没有映射的地址读取或写入,或者映射了不允许的各种访问

还有其他一些条件会导致此信号跳闸。 查看mmapmprotect的手册页以了解可能的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM