Değerli bellek sızıntıları için uzun süre çalışan bir işlem olup olmadığını kontrol etmek istiyorum. Hafıza sızıntısından şüpheleniyorum, ancak birkaç saat sonra gerçekleşebilir. Ben app valgrind altında çalıştırmak ve valgrind günlüğü sadece güzel olsun, ama bu yüzden ben uygulamayı bırakmak ve yine birkaç saat beklemek zorunda kalacak yeni bir valgrind oturumu için yeniden yeniden başlamak zorunda anlamına gelir. Valgrind ve uygulama çalışan tutmak ve hala yürütme sırasında herhangi bir noktada valgrind (kısmi) veri almak mümkün mü?Profilli uygulamadan çıkmak zorunda kalmadan çıktı kısmi raporlarını doğrulayabilir mi?
5
A
cevap
8
Bunu Valgrind gdbserver and GDB kullanarak yapabilirsiniz.
Kısacası, her zamanki gibi valgrind ile programınızı başlatmak, ancak --vgdb=yes
anahtarı ile:
$ valgrind --tool=memcheck --vgdb=yes ./a.out
başka oturumda, aynı yürütülebilir üzerinde gdb başlatın ve valgrind bağlanın. Daha sonra valgrind komutlar verebilir:
$ gdb ./a.out
...
(gdb) target remote | vgdb
....
(gdb) monitor leak_check full reachable any
==8677== 32 bytes in 1 blocks are definitely lost in loss record 1 of 2
==8677== at 0x4C28E3D: malloc (vg_replace_malloc.c:263)
==8677== by 0x400591: foo (in /home/me/tmp/a.out)
==8677== by 0x4005A7: main (in /home/me/tmp/a.out)
==8677==
==8677== 32 bytes in 1 blocks are definitely lost in loss record 2 of 2
==8677== at 0x4C28E3D: malloc (vg_replace_malloc.c:263)
==8677== by 0x400591: foo (in /home/me/tmp/a.out)
==8677== by 0x4005AC: main (in /home/me/tmp/a.out)
==8677==
==8677== LEAK SUMMARY:
==8677== definitely lost: 64 bytes in 2 blocks
==8677== indirectly lost: 0 bytes in 0 blocks
==8677== possibly lost: 0 bytes in 0 blocks
==8677== still reachable: 0 bytes in 0 blocks
==8677== suppressed: 0 bytes in 0 blocks
==8677==
(gdb)
komutları, MemCheck için
here listesi için el kitabına bakın.
İlgili konular
- 1. Borisvel Laravel 4.1'den çıkmak zorunda kalmadan Boris'i yeniden yükleyebilir misiniz?
- 2. Dosyada Değişiklikleri Kaydetmek zorunda kalmadan Page
- 3. TargetControlID'yi ayarlamak zorunda kalmadan ModalPopupExtender'ı kullan?
- 4. xslt bu birkaç geçiş gitmek zorunda kalmadan mümkün olup olmadığını
- 5. Telefon boşluğunda uygulamadan çıkmak için navigator.app.exitApp() nasıl kullanılır?
- 6. Asp.net'deki (elle abone olunan) etkinlikten çıkmak zorunda mıyım?
- 7. Bir maritim XML'i JAXB 2.0 ile doğrulayabilir mi?
- 8. SRSS raporlarını nasıl inceliyorsunuz?
- 9. Kullanıcı WPF TextBox'tan çıkmak için klavye mi, fare mi kullandı?
- 10. Ember-Data'da kısmi güncelleme mi?
- 11. Servlet çıktı akışını temizlemem gerekir mi?
- 12. Programın çıktı dizisini
- 13. Clojure'da tırnak işaretleri kaçmak zorunda kalmadan metin ile çalışmak için kolay yolu?
- 14. MS Access: VBA kodunda bir SQL deyimi aracılığıyla sorguyu çalıştırmak zorunda kalmadan tablodaki ayrı bir sorgunun sonuçlarını depolayabilir mi?
- 15. bir C# Win uygulamadan
- 16. BMC çare 8.1 aylık raporlarını raporlamak 8.1
- 17. SQL - Seçtiğiniz tüm sütunları geçmek zorunda kalmadan bir grup nasıl yapılır?
- 18. Form_for ve model örneği kullanmak zorunda kalmadan Rails'de nasıl bir form oluşturabilirim?
- 19. Arka planda her zaman uygulamayı çalıştırmak zorunda kalmadan iletileri nasıl gönderebilirim?
- 20. Her bir özelliği sıfırlamak zorunda kalmadan bir öğenin ana CSS'sini geçersiz kılma
- 21. Her dev makinesini güncellemek zorunda kalmadan web.config özel bölüm şemasına nasıl eklenir?
- 22. Haskeline içinde basit IO'yu InputT monad içinde gerçekleştirin, güvensizPerformio'ya başvurmak zorunda kalmadan,
- 23. bunu indirmek ve yüklemek zorunda kalmadan Amazon Glacier EC2 hacimleri taşımak mümkün mü?
- 24. Hata ayıklama: Android studio, bir uygulamadan çıkmak için adım attığımda uygulamanın çökmesine neden oluyor
- 25. Çok iş parçacıklı uygulamadan verimli çıkış (özellikler)
- 26. Rx - etkinlikten çıkmak için
- 27. ana uygulamadan
- 28. Nasıl Win32 uygulaması API ile çıkmak için?
- 29. ASP.NET MVC3 Jilet - Koşullu olarak kısmi bir görünümden çıkmak veya bitmek veya kısmi bir görünümü nasıl iptal etmek veya kırmak?
- 30. Git: biz çok büyük bir git deposunda (90Go) başa çıkmak zorunda İş yerinde uzak