W jakich okolicznościach (jeśli w ogóle) sygnał SIGSTKFLT byłby synchronicznie podnoszony przez jądro pod Linuksem 3.0 na x86_64?Linux 3.0 x86_64: Kiedy podniesiono SIGSTKFLT?
Odpowiedz
Według man 7 signal
:
Signal Value Action Comment
SIGSTKFLT -,16,- Term Stack fault on coprocessor (unused)
Ponieważ stos koprocesora x86 nie można przyczepić (jestem całkiem pewien), nie sądzę, może być sygnalizowane w sposób dorozumiany. Tylko wygenerowanie jawne (przez kill()
lub raise()
) może spowodować to.
I grep
'd źródłem jądra. Nie używa go, ale istnieje około 50 instancji (na architekturę procesora) z
#define SIGSTKFLT 16
Cóż, koprocesor x87 może uszkodzić: po prostu zdemaskować bit IM w słowie kontrolnym FPU i spróbować wykonać instrukcję 'fld' 9 razy bez' fstp' lub podobnych. Ale na Linuksie taki błąd w stosie generuje SIGFPE zamiast SIGSTKFLT. – Ruslan
@Ruslan: Chodzi mi o to, że nie sądzę, że 8087 może wygenerować SIGSTKFLT. Oczywiście może tworzyć inne rodzaje błędów, takie jak SIGSEGV, itp. – wallyk
Nie, chodzi mi o to, że może naprawdę dosłownie mieć usterkę stosu (jej 8 rejestrów jest zorganizowanych w stos), chociaż nie odzwierciedla to tego, błędy - dla aplikacji są tylko SIGFPE. – Ruslan
- 1. Kiedy w Punkcie Pytań podniesiono KeyboardInterrupt?
- 2. Nadchodzące książki o jądrze Linux (wersja 3.0+)?
- 3. Jak zainstalować bibliotekę OCaml Core na (Arch) Linux x86_64?
- 4. brak wymaganego architektury x86_64
- 5. Jaki jest format struktury va_list x86_64?
- 6. /proc/$ pid/maps pokazuje strony bez uprawnień rwx na x86_64 linux
- 7. Kiedy należy używać wyrażeń lambda dostarczanych z C# 3.0?
- 8. Soft Float na architekturze x86_64
- 9. Błąd instalacji pakietu - Twój pakiet obsługuje tylko platformy [], ale lokalne platformy to ["ruby", "x86_64-linux"]
- 10. x86_64 wywoływanie konwencji i ramek stosów
- 11. SVN sprawdzeniu linux
- 12. Kiedy wezwanie do czasu (NULL) może nie na Linux
- 13. NDK zbudować dla wyników cel x86_64 w błędzie
- 14. Jak mogę rozwiązać problem "Twój pakiet obsługuje tylko platformy [" x86-mingw32 "], ale lokalne platformy to [" ruby "," x86_64-linux "]"
- 15. ld: 1 symbol duplikatu dla architektury x86_64
- 16. Niezdefiniowane symbole architektury x86_64 iOS swift
- 17. Szybka liczba zmiennoprzecinkowa 2 na x86_64
- 18. Wyczyść wyjście zespołu x86_64 za pomocą gcc?
- 19. Urządzenie wirtualne Android - Armeabi-v7a kontra x86_64
- 20. Jak uaktualnić Tomcat na linux
- 21. Google Analytics 3.0 autoryzacja
- 22. Różnica w ABI między funkcjami Linuksa x86_64 a syscalls
- 23. Dlaczego fsync() zajmuje dużo więcej czasu na jądrze Linux 3.1. * Niż jądro 3.0
- 24. Linux - Yum zainstalować GCC - Missing kernel-headers
- 25. Selenium 3.0.x z HTMLUnitDriver
- 26. Błąd pobierania instalatora (Oracle): Nie można załadować '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'
- 27. Jaki jest cel rejestru RBP w asemblerze x86_64?
- 28. Szablon build błąd: niezdefiniowane symbole dla architektury x86_64:
- 29. Błąd łącznika Xcode: plik jest zbyt mały dla architektury x86_64
- 30. Jersey w/Spring 3.0?
Prawdopodobnie nigdy nie będzie. Dlaczego pytasz? – sep332
Próba napisania odpowiedniego komunikatu o błędzie w bibliotece systemowej. –