2015-08-01 15 views
5

Khi gỡ lỗi ứng dụng Qt 5, đôi khi tôi không quan tâm đến nội bộ của Qt 5 nhưng trong cấu trúc của ứng dụng. Vì vậy, tôi không cần tải tất cả các biểu tượng gỡ lỗi của các thư viện Qt 5 vì chúng mất vài giây để tải.Làm cách nào để ngăn GDB tải biểu tượng gỡ lỗi cho thư viện (lớn)?

Có thể ngăn GDB tải biểu tượng cho các thư viện Qt 5 này trong khi vẫn giữ biểu tượng gỡ lỗi cho ứng dụng của tôi không?

+3

Có thể trang này: https://developer.mozilla.org/en-US/docs/Using_gdb_on_wimpy_computers có thể được sử dụng. –

Trả lời

7

Có thể ngăn GDB tải biểu tượng cho các thư viện Qt 5 này trong khi vẫn giữ biểu tượng gỡ lỗi cho ứng dụng của tôi không?

Có.

Theo bình luận Richard Critten của đề cập, thiết lập auto-solib-add-0 sẽ ngăn chặn tải biểu tượng cho tất cả thư viện chia sẻ, và sau đó bạn có thể thêm các tập tin bằng tay với lệnh sharedlibrary (mà chấp nhận một regex). Nếu regex này bị bỏ qua, thì tất cả các thư viện chia sẻ sẽ được tải.

Tuy nhiên, điều đó sẽ ngăn tự động tải tất cả các biểu tượng (không chỉ các biểu tượng gỡ lỗi) và cũng sẽ tự động tải biểu tượng cho thư viện hệ thống.

Cách tiếp cận tốt hơn có thể là lưu một bản sao của thư viện Qt5 với thông tin gỡ lỗi đầy đủ ở đâu đó, ví dụ: ~/Qt5-debug/, sau đó chạy strip -g trên thư viện gốc. Bằng cách đó, bạn sẽ nhận được thông tin tượng trưng cho tất cả các thư viện và trong trường hợp hiếm hoi khi bạn thực sự cần thông tin gỡ lỗi đầy đủ cho Qt5, bạn vẫn có thể thực hiện điều đó bằng cách sử dụng lệnh GDB file ~/Qt5-debug/libQt5Core.so.5.2 hoặc các lệnh tương tự.

Chương GDB Files từ hướng dẫn GDB có thêm tài liệu về cách sử dụng các biểu tượng gỡ lỗi riêng biệt như vậy.

+0

Cảm ơn vịt cao su! Ngay sau khi đăng câu hỏi này tôi tìm thấy các phần có liên quan trong hướng dẫn GDB, hy vọng bạn không nhớ tôi thêm chúng :-) – Lekensteyn

+1

Xin cảm ơn !!! Bắt đầu gỡ lỗi ứng dụng Qt trên quả mâm xôi mất một thời gian rất dài. Với tùy chọn này bắt đầu gdb xảy ra ngay lập tức. – kaegoorn48

+0

Bạn cũng có thể thêm lệnh chính xác này vào ~/.gdbinit để làm cho nó vĩnh viễn. – sdd

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