Я не понимаю.Кроме того, самое удивительное: эта программа работает с ошибками, когда я запускаю ее из терминала, но не выполняет segfault в gdb.Таким образом, хотя я хотел бы показать вывод GDB, я не могу, поскольку это не интересно, и, кажется, делает именно то, что я хочу.
[OP@localhost sys_brk]$ cat out_of_memory.s
.section .text
.globl _start
_start:
mov $12, %rax # sys_brk
mov $0x1000000, %rdi
syscall
# i: index of memory we are writing to (%rax)
mov $0x403000, %rax
evil_loop_start:
cmp $0x1000000, %rax
jge evil_loop_end
mov %rax, (%rax)
add $0x8, %rax
jmp evil_loop_start
evil_loop_end:
mov $34, %rax # sys_pause
syscall