kod bölümüne yazarken SIGSEGV sinyali aldım Program received signal SIGSEGV
hata mesajı alıyorum.
eax numaralı telefonda ve argümandaki yeni bir değerde (0xb7fb773a) çağrı bağımsız değişkeninin adresini (0x8048579 adresi) saklıyorum. Anlama talimatım uyarınca mov %edx,(%eax)
bunu yapmalıdır, ancak başarısız olur.
Neyi yanlış yapıyorum?
Bu benim üniversite görevinin bir parçasıdır, bu nedenle gerçek bir sistem :-)Program, çağrı talimatının adresini geçersiz kılmaya çalışırken
Kod zarar ediliyor:
0x08048566 <+35>: mov -0x8(%ebp),%edx
0x08048569 <+38>: mov -0x4(%ebp),%eax
=> 0x0804856c <+41>: mov %edx,(%eax) // Fails here.
0x0804856e <+43>: movl $0x0,(%esp)
0x08048575 <+50>: call 0x8048370 <[email protected]>
Defterler:
eax 0x8048579 134514041
edx 0xb7fb773a -1208256710
Hatası:
Program received signal SIGSEGV, Segmentation fault.
0x0804856c in foo (argv=0x58575655) at my_code.c:34
// Güncelleştirme 1: CPU bilgisi:
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 69
Stepping: 1
CPU MHz: 2306.609
BogoMIPS: 4613.21
L1d cache: 32K
L1d cache: 32K
L2d cache: 6144K
kontrol için bir yol var mı: Bu soru için cevaplar ilginizi çekebilir
? – Tigran