Mam uruchomioną aplikację osadzoną na płycie ARM9, gdzie całkowity rozmiar flash wynosi tylko 180 MB. Jestem w stanie uruchomić gdb
, ale kiedy robięJak ograniczyć rozmiar pliku zrzutu pamięci podczas generowania go za pomocą GDB
(gdb) generate-core-dump
pojawia się błąd
warning: Memory read failed for corefile section, 1048576 bytes at 0x4156c000.
warning: Memory read failed for corefile section, 1048576 bytes at 0x50c00000.
Saved corefile core.5546
The program is running. Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]
Tamper Detected
**********OUTSIDE ifelse 0*********
length validation is failed
ja również ustawić ulimit -c 50000
ale nadal zrzutu pamięci przekroczy ten limit. Kiedy wykonuję ls -l
, aby sprawdzić rozmiar pliku, to jest to ponad 300 MB. W takim przypadku w jaki sposób powinienem ograniczyć rozmiar zrzutu pamięci?
Używam gdb na tablicy docelowej. Mogę również użyć gdbserver, ale ponieważ awaria nie jest łatwa do powielenia, wybieram pierwszą opcję. –
Przepraszam, ale nie widzę, jak działa gdb lub gdbserver, skoro cokolwiek związanego z awarią jest łatwo powtarzalne, czy nie? – shodanex
@shodanex - przy użyciu modelu klient-serwer rdzeń może być gromadzony w systemie plików "host", a nie w systemie wbudowanym, który ma tutaj tylko 180 MB dostępnego miejsca na plik podstawowy. Prawdopodobnie system hosta ma pełny dysk twardy i jest w stanie zapisać znacznie większy plik core. – Peter