Czy mogę skonfigurować, co dzieje się z zrzutem rdzenia w systemie Linux? Chcę uzyskać coś w rodzaju mini-zrzutów systemu Windows (minimalna informacja o ramce stosu, gdy aplikacja uległa awarii). Wiem, że możesz ustawić maksymalny rozmiar plików podstawowych przy użyciu ulimit
, ale to nie pozwala mi kontrolować, co wchodzi w rdzeń (tj. Nie ma gwarancji, że jeśli ustawię limit na 64 kb, zrzuci on ostatnie 16 stron stos, na przykład).Minimalny zrzut rdzenia (śledzenie stosu + aktualna ramka)
Chciałbym również ustawić programowo (z kodu), jeśli to możliwe. Spojrzałem na plik /proc/PID/coredump_filter
wymieniony przez man core
, ale wydaje się zbyt gruboziarnisty dla moich celów.
Aby zapewnić mały kontekst: Potrzebuję małych plików podstawowych z wielu powodów: muszę je zebrać w sieci, dla wielu (tysięcy) klientów; ponadto są to urządzenia wbudowane z niewielkimi kartami SD i modemy GPRS do połączenia sieciowego. Tak więc wszystko powyżej 200 000 jest wykluczone.
EDYCJA: Pracuję na urządzeniu osadzonym, które działa pod Linuksem 2.6.24. Procesor to PowerPC. Niestety, PowerPC Linux jest nie obsługiwane breakpad w tej chwili, więc google breakpad nie jest opcją
Nie mam pojęcia, a odpowiedź leży prawdopodobnie w kodzie źródłowym jądra (ponieważ nie ma z tym żadnej specyfikacji). Dlaczego pytasz? W przypadku obecnych dysków limit zrzutu pamięci o wartości 64 Mb jest nadal mały i prawdopodobnie zawierałby wystarczającą ilość informacji. Dlaczego musisz ustawić limit tak małej wartości jak 64 kb. ? –
Google Breakpad pisze minizrzuty na wszystkich platformach, w tym na Linuksie. –
Pytam, ponieważ korzystam z urządzenia osadzonego, które ma mały dysk flash, a szczególnie wolne połączenie GPRS do pobierania danych. Chcę, aby był jak najmniejszy! –