我想用 valgrind 检查一个长时间运行的进程是否有内存泄漏。我怀疑我所追求的内存泄漏可能仅在执行数小时后才会发生。我可以在 valgrind 下运行应用程序并获得 valgrind 日志,但这样做意味着我必须退出应用程序并重新启动它以进行新的 valgrind session ,我仍然需要等待几个小时。是否可以保持 valgrind 和应用程序运行并在执行期间的任何时候仍然获取 valgrind 的(部分)数据?
câu trả lời hay nhất
Bạn có thể sử dụng Valgrind gdbserver and GDB 来做到这一点.
简而言之,您像往常一样使用 valgrind 启动程序,但使用 --vgdb=yes
开关:
$ valgrind --tool=memcheck --vgdb=yes ./a.out
在另一个 session 中,您在同一个可执行文件上启动 gdb,并连接到 valgrind。然后您可以发出 valgrind 命令:
$ 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)
请参阅手册以获取命令列表,đây用于内存检查。
关于valgrind - valgrind 可以输出部分报告而不必退出配置文件应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10861953/
Tôi đang gặp một số vấn đề khi sử dụng io-ts. Tôi thấy nó thực sự thiếu tài liệu và hầu hết tiến bộ tôi đạt được đều nhờ vào các vấn đề của GitHub. Không, tôi không hiểu HKT nên điều đó không giúp ích được gì. Về cơ bản, tôi tạo một kiểu ở một nơi khác, ty
Tôi phải tạo một biểu thức chính quy để tìm kiếm toàn bộ tệp để tìm phần khớp với phần đầu tiên (nhưng không phải phần thứ hai) của trình phân tích cú pháp Java XML. Điều này sẽ được sử dụng để ngăn chặn một số cuộc tấn công XXE nhất định. Thật không may, nó phải là một biểu thức chính quy duy nhất và nó yêu cầu phải tìm kiếm
Tôi có một số nội dung đơn giản trong tệp Shared/_Header.cshtml. Hiện tại, Shared/_Layout.cshtml của tôi chèn mã này bằng cách gọi @Html.Partial("_Header")
Tôi có câu lệnh if-else trong đó: Điều kiện 1: ID khớp và một số trường nhất định được tự động điền. Câu lệnh if sau đó chỉ điền vào các trường còn lại. Điều kiện 2: ID không khớp, tất cả các trường đều trống. Câu lệnh ELSE điền tất cả chúng khi tôi đưa ra điều kiện
Tôi đang phát triển một trang web cuộn trang duy nhất. Tôi đang cố triển khai ScrollMagic và ghim phần đầu tiên để phần còn lại của trang web cuộn lên đầu phần cố định. Tôi đã thử tạo một jsfiddle để hiển thị sự cố nhưng dường như tôi không thể tải jsfiddl sang