Làm cách nào để tôi 'đính kèm' một giao diện điều khiển / chế độ xem thiết bị đầu cuối vào đầu ra ứng dụng để tôi có thể biết nó có thể nói gì?
Về câu hỏi này, tôi biết có thể bắt được đầu ra, ngay cả khi bạn không khởi chạy lệnh quyền trượng trước khi khởi chạy processus.
Mặc dù tôi chưa bao giờ thử nó, nhưng tôi đã tìm thấy một bài viết thú vị giải thích cách sử dụng GDB (và không cần khởi động lại quy trình của bạn).
redirect-output-from-a-running-process
Về cơ bản:
- Kiểm tra danh sách tệp đang mở để biết quy trình của bạn, nhờ vào / proc / xxx / fd
- Đính kèm quy trình của bạn với GDB
- Trong khi nó bị tạm dừng, hãy đóng tệp bạn quan tâm, gọi hàm close () (bạn có thể thực hiện bất kỳ hàm nào trong quy trình của mình trong GDB. Tôi nghi ngờ bạn cần ký hiệu gỡ lỗi trong quy trình của mình ..)
- Mở một tệp mới gọi hàm create () hoặc open (). (Hãy xem phần nhận xét ở cuối, bạn sẽ thấy mọi người đề xuất sử dụng Dup2 () để đảm bảo cùng một tay cầm sẽ được sử dụng)
- Tách quy trình và chạy.
Nhân tiện, nếu bạn đang chạy hệ điều hành linux trên hộp i386, các nhận xét đang nói về một công cụ tốt hơn để chuyển hướng đầu ra sang bảng điều khiển mới: 'retty' . Nếu vậy, hãy xem xét việc sử dụng nó.