2015-01-02 13 views
7

Làm cách nào để bật gỡ lỗi động (pr_debug) khi khởi động cho nhiều tệp bằng cách cung cấp đối số dòng lệnh cho hạt nhân Linux?Bật gỡ lỗi động cho nhiều tệp lúc khởi động

Tôi cố gắng để cung cấp sau đây như một cuộc tranh cãi -

dyndbg='file drivers/<filename1> +p file drivers/<filename2> +p file drivers/<filename3> +p'

Tuy nhiên, gỡ lỗi động không được kích hoạt.

Cú pháp của tôi có đúng không?

Trả lời

2

Lệnh điều khiển riêng biệt bằng dấu chấm phẩy.

dyndbg='file drivers/<filename1> +p; file drivers/<filename2> +p; file drivers/<filename3> +p' 
2
  1. Đầu tiên, kiểm tra xem bạn đã kích hoạt CONFIG_DYNAMIC_DEBUG=y này trong file .config

  2. Kiểm tra nếu điều này hoạt động đúng khi kernel được khởi động.

    echo -n 'module module_name +p' > /debugfs/dynamic_debug/control 
    
  3. Hãy chắc chắn rằng QUERY là ở định dạng đúng (trong đó đường dẫn đến các mô-đun/thư mục là đúng) khi chỉ định với dyndbg=QUERY

Đối với built-in sử dụng mô-đun dyndbg='module module_name +p'

Để sử dụng mô-đun có thể tải module_name.dyndbg=<query> ví dụ: xhci_hcd.dyndbg=+p

Bạn có thể thêm nó vào mặc định Linux của mình dòng lệnh bằng cách viết các tập tin /etc/default/grub như sau:

GRUB_CMDLINE_LINUX_DEFAULT="xhci_hcd.dyndbg=+p" 

Refer link:

thông điệp gỡ lỗi trong quá trình khởi động Process

Để kích hoạt các thông điệp debug cho mã lõi và các module tích hợp trong khởi động quy trình, ngay cả trước khi không gian người dùng và debugfs tồn tại, hãy sử dụng dyndbg = "QUERY", module.dyndbg = "QUERY" hoặc ddebug_query = "QUERY" (ddebug_query bị lỗi thời bởi dyndbg và không được chấp nhận). QUERY theo sau cú pháp được mô tả ở trên, nhưng không được vượt quá 1023 ký tự. Trình tải khởi động của bạn có thể áp đặt giới hạn thấp hơn.

Các thông số dyndbg này được xử lý ngay sau khi các bảng ddebug là được xử lý, như một phần của arch_initcall. Vì vậy, bạn có thể bật gỡ lỗi các thông báo trong tất cả các mã chạy sau arch_initcall này thông qua tham số khởi động này.

+0

Tôi đã kiểm tra bước 1 và bước 2 và điều đó là tốt. Có lẽ tôi không rõ ràng từ câu hỏi của tôi. Tôi muốn hỏi rằng đối với nhiều tập tin là QUERY của tôi đúng hay không. Làm cách nào để xác minh? – Raj

+0

Tôi chưa thử nhiều tệp, nhưng bạn có thể thử 'dyndbg = 'tập tin module_name/path/to/files/* + p' nếu tác vụ này – askb

+0

Tôi không muốn thêm tất cả các tệp, vì có nhiều tệp trong thư mục. – Raj

Các vấn đề liên quan