Was ist ein abgeschnittener Arbeitsspeicher?

8

ulimit -c kann verwendet werden, um RLIMIT_CORE festzulegen und die maximale Größe eines Coredumps zu begrenzen, den ein Prozess generieren kann. Jeder größere Arbeitsspeicher wird auf diese Größe gekürzt.

Kann etwas Nützliches mit solch einem abgeschnittenen Coredump gemacht werden? Vielleicht auf einer anderen Plattform als Linux x86-64 oder mit einem anderen Debugger als GDB?

Falls nicht, warum gibt POSIX dieses Verhalten an , anstatt beispielsweise a zu schneiden coredump auf null Bytes wenn RLIMIT_CORE überschritten wird?

    
daxelrod 12.12.2011, 21:45
quelle

1 Antwort

6
  

Kann mit so einem abgeschnittenen Arbeitsspeicher etwas Nützliches getan werden?

Ja, viele Dinge.

Der abgeschnittene Core-Dump enthält normalerweise die Stack-Segmente, daher funktionieren die Befehle where und thread apply all where normalerweise. Oft ist das alles, was man von einem Kern braucht. Befehle zur Untersuchung lokaler Variablen und Globals funktionieren wahrscheinlich ebenfalls.

Befehle zum Überprüfen von Heap-allokierten Variablen funktionieren möglicherweise für einige Variablen, aber nicht unbedingt für andere. Trotzdem ist das viel besser als nichts.

    
Employed Russian 12.12.2011, 22:44
quelle

Tags und Links