Следующее приложение генерирует Ошибка сегментации при выполнении:
.set __NR_reboot, 169
.set LINUX_REBOOT_CMD_POWER_OFF, 0x4321FEDC
.section .text
.globl _start
_start:
movl $LINUX_REBOOT_CMD_POWER_OFF, %ebx
movl $__NR_reboot, %eax
int $0x80
Это довольно простое приложение, и я, должно быть, упускаю что-то действительно очевидное. Кто-нибудь может мне помочь?
Он был скомпилирован с:
as shutdown.s -o shutdown.o
ld shutdown.o -o shutdown
EDIT:
Даже простое приложение, которое просто вызывает syscall sync (), генерирует Ошибка сегментации :
.set __NR_sync, 36
.section .text
.globl _start
_start:
movl $__NR_sync, %eax
int $0x80
movl $1, %eax #syscall exit
movl $0, %eax
int $0x80