[英]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
这意味着您试图以不允许的方式访问地址空间。 例如:
您可能已尝试写入只读位置
您可能曾尝试从只写位置读取
您可能曾尝试从未设置执行权限的位置执行代码
您可能试图从根本没有映射的地址读取或写入,或者映射了不允许的各种访问
还有其他一些条件会导致此信号跳闸。 查看mmap
和mprotect
的手册页以了解可能的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.