Tôi có phần mềm bị lỗi (bộ nhớ bị rò rỉ). Là một bằng chứng, tôi có 1GB tệp core.dump. Kích thước heap là 900MB, do đó, rõ ràng, một cái gì đó phân bổ, nhưng không giải phóng bộ nhớ.gdb, kết xuất bộ nhớ, lưu đầu ra được định dạng thành tệp
Vì vậy, tôi có một vùng bộ nhớ để kiểm tra như thế này.
(gdb) x/50000s 0x200000000
Tuy nhiên, khó đoán chỉ với mắt thường, đối tượng hoặc cấu trúc nào không được giải phóng. Ý tưởng của tôi là theo dõi, "Lưu đầu ra được định dạng gdb thành tệp và chạy mẫu khớp để xem chuỗi ma thuật nào xuất hiện nhiều nhất". Vì vậy, đây là câu hỏi của tôi:
Làm thế nào tôi có thể lưu đầu ra của lệnh sau vào một tệp văn bản, để tôi có thể viết một trình phân tích?
(gdb) x/10000000s 0x20000000 <-- I need this output into a file
Cảm ơn bạn đã được trợ giúp.
Ngoài ra còn có một lệnh bãi chuyên dụng trong gdb. Xem thêm: https://sourceware.org/gdb/onlinedocs/gdb/Dump_002fRestore-Files.html – Alex