Nhận lỗi trong khi cố gắng gỡ lỗi trong QtProject


14

Tôi đã cài đặt phiên bản mới nhất của QtProject để bây giờ tôi có thể gỡ lỗi C++mã.

Trong khi thử gỡ lỗi lần đầu tiên tôi đã gặp lỗi này:

ptrace: Operation not permitted.

Could not attach to the process. Make sure no other debugger traces this process.
Check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see /etc/sysctl.d/10-ptrace.conf

Câu trả lời:


14

Trên các phiên bản Ubuntu sau 10.10, bạn sẽ gặp vấn đề này trong các ứng dụng liên quan hơn, chẳng hạn như QtCreator. Đây là một tính năng bảo mật của Ubuntu, ngăn trình gỡ lỗi gắn vào các quy trình không thuộc sở hữu của anh ta.

Đây là lỗi # 3509 chống lại QtCreator . Để giải quyết vấn đề này, hãy làm điều này:

  • giải pháp tạm thời (sẽ không tồn tại khi khởi động lại):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • Trong một tệp /etc/sysctl.d/10-ptrace.conf(nên đã tồn tại), thay đổi giá trị kernel.yama.ptrace_scopethành 0và sau đó tải lại cấu hình : sudo sysctl -p.

Tôi rõ ràng đang đăng giải pháp tạm thời, vì có lẽ bạn không muốn tắt tính năng này trên một máy thông thường vì lý do bảo mật.


4

Tôi đã có cùng một vấn đề trong khi chạy dự án trong thiết bị đầu cuối. Chỉ cần bỏ chọn (hoặc kiểm tra - chạy - bỏ chọn nếu vì lý do nào đó không được chọn) hộp "Chạy trong thiết bị đầu cuối" trong "Dự án" (trên thanh bên trái) - tab "Chạy" - phần "Chạy".


Cảm ơn điều này đã làm việc cho tôi gỡ lỗi bây giờ bắt đầu trong đầu ra ứng dụng QTCreators.
squareborg

Bỏ phiếu này vì đây là giải pháp đơn giản nhất nếu bạn không cần xem đầu ra của thiết bị đầu cuối từ ứng dụng của mình.
Rob Davies

0

Bạn có thể thay đổi khả năng của gdb với

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

khả năng của con người nói với cap_sys_ptrace cho quyền

Trace  arbitrary  processes  using ptrace(2); apply get_robust_list(2)
to arbitrary processes; inspect processes using kcmp(2).

Xem thêm người đàn ông cap_from bản.

Đây là một giải pháp không bị xóa bằng cách khởi động lại, nhưng nó cũng không hoàn toàn an toàn. Tôi sẵn sàng đề xuất cách thực hiện việc này vĩnh viễn và an toàn.


-4

Chỉ cần mở QtCreator thông qua Terminal với quyền root; nó làm việc cho tôi

sudo qtcreator

Nó tiết lộ lỗ hổng bảo mật lớn.
enedil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.