Co to jest zrzut podstawowy?
Zrzut rdzenia to zapis zawartości pamięci komputera, gdy wystąpił poważny błąd. Może obejmować całą pamięć systemową lub tylko część, która była używana przez program, który zawiódł. Może również zawierać inne istotne dane, takie jak stan procesora, zawartość rejestru i informacje o uruchomionych procesach. Inżynierowie oprogramowania często wykorzystują zrzuty pamięci z debuggerami i innymi narzędziami do analizy i naprawy błędów komputera. Zrzut rdzenia można również wykorzystać do przeniesienia działającego procesu z jednego procesora na drugi podczas normalnej pracy.
Termin „zrzut rdzenia” prawdopodobnie powstał w latach 60. XX wieku, gdy wczesne komputery korzystały z pamięci rdzenia magnetycznego. Gdy uruchomiony program się zawiesił, wszystkie dane w całym rdzeniu zostały wydrukowane na papierze, aby pomóc w debugowaniu. Wydruki te zwykle zawierały niewiele więcej niż adresy pamięci i dane w notacji ósemkowej lub szesnastkowej. W miarę poprawy technologii przechowywania zrzuty rdzenia można zapisywać na dysku, wymiennej taśmie magnetycznej lub nieulotnych kartach pamięci. Większa pojemność przechowywania informacji o stanie oraz postępy w debugowaniu oprogramowania sprawiły, że diagnostyka błędów jest bardziej wydajna.
Typowe przyczyny zrzutów pamięci to źle napisane aplikacje lub oprogramowanie systemowe. Dość często kod programu zakłada, że wskaźniki i indeksy tablic zawsze odnoszą się do prawidłowych struktur danych. Jeśli któryś z nich przekroczył granice swoich oryginalnych struktur, na przykład może wystąpić zrzut rdzenia. Problemy z dostępem do plików danych na urządzeniu pamięci masowej lub odczytem uszkodzonych danych mogą również spowodować zrzut pamięci. Mogą również powodować problemy sprzętowe, w tym nieprawidłowe działanie pamięci, dysków twardych lub procesorów.
Zasadniczo istnieją dwa rodzaje zrzutów rdzenia. Jednym z typów jest zakończenie działającego procesu lub aplikacji i kontrola powraca do systemu operacyjnego. W takim przypadku reszta systemu nadal działa normalnie, ponieważ zatrzymano tylko program naruszający prawo. Zwykle generowany jest duży plik zrzutu pamięci, który można następnie załadować do debuggera. Jeśli błąd wystąpił w programie, dla którego dostępne są symbole i kod źródłowy, można je również załadować do debuggera.
Drugi poważniejszy rodzaj zrzutu rdzenia nazywany jest również paniką jądra. Ten typ zrzutu zatrzymuje cały system na swoich śladach, aby zapobiec dalszym komplikacjom i uszkodzeniu danych. W systemach Microsoft Windows® tego rodzaju zrzut zwykle występuje w powszechnie znanej formie „niebieskiego ekranu śmierci”. Takie paniki są zwykle trudniejsze do debugowania i często są spowodowane problemami sprzętowymi lub systemowymi. Może się to zdarzyć, zanim system zakończy ładowanie systemu, gdy dostępnych jest niewiele informacji na temat rzeczywistej przyczyny.