Çekirdek dökümü analizi için bir araç yazıyorum ve yazdırmak istediğim bir şey, işlemin, işlemin yapıldığı sırada ne kadar sanal bellek kullandığını tahmin etmektir. Bu çekirdek dökümler, çökmelere bağlı olabilir veya gcore kullanılarak manuel olarak alınabilir (örneğin, boyutlandırma için). Esasen, PS VSZ kolonunun eşdeğerini basmak istiyorum.Linux'ta bir çekirdek dökümü ve gdb kullanan bir sanal bellek (VSZ) nasıl kullanılır?
Kendisine ve gdb'ye baktım ve ikincisine odaklandım. Örneğin, ben sadece asılı basit bir program var ve PS bakın:
$ ps auxwww | grep a.out
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 16644 0.0 0.0 4108 472 pts/5 S+ 13:51 0:00 ./a.out
Ben gcore kullanarak bir çekirdek almak ve bu noktada 4.206.592 bayt VSZ kullanıyor etmektedir. Sonra, info target
çıktısını ayrıştıran ve adres aralıklarını özetleyen bir hızlı komut dosyası yazdım ve 1,814,528 bayt elde ediyorum. Ayrıca info proc mappings
denedim, ancak bu yalnızca işlem çalışıyorsa çalışır gibi görünüyor.
Herhangi bir fikrin var mı? Benim durumumda
Sadece bakım bilgileri bölümlerini denedim ve biraz daha büyük, ancak benzer sayısı 1,817,528 bayt. – user379184