Các hướng dẫn này hoạt động cho OSX High Sierra và tránh chạy gdb với quyền root (yuck!). Gần đây tôi đã cập nhật từ OSX 10.13.2 lên 10.3.3. Tôi nghĩ rằng đây là khi gdb 8.0.1 (đã cài đặt w / homebrew) bắt đầu thất bại đối với tôi.
Tôi gặp khó khăn với hướng dẫn của người khác. Sau những chỉ dẫn khác nhau, mọi thứ là một mớ hỗn độn. Vì vậy, tôi bắt đầu một tươi. Tôi ít nhiều làm theo các hướng dẫn này .
Dọn dẹp mớ hỗn độn:
brew uninstall --force gdb # This deletes _all_ versions of gdb on the machine
- Trong
Applications
-> Utilities
-> Keychain Access
, tôi đã xóa tất cả các chứng chỉ và khóa gdb trước đó (hãy chắc chắn bạn biết bạn đang làm gì ở đây!). Không rõ điều này có cần thiết hay không, nhưng vì tôi đã cố gắng tạo ra các chứng chỉ và khóa đó bằng các hướng dẫn khác nên tôi đã loại bỏ chúng bằng mọi cách. Tôi đã có khóa và chứng chỉ trong cả đăng nhập và hệ thống.
Bây giờ cài đặt lại gdb.
brew install gdb
- Trong
Keychain Access
, đi đến menu Keychain Access
-> Certificate Assistant
->Create a Certificate
- Kiểm tra "Để tôi ghi đè mặc định" và đặt
Name : gdb-cert
Identity Type: Self Signed Root
Certificate Type : Code Signing
[X] Let me override defaults
- Trên trang thông tin chứng chỉ 1:
Serial Number : 1
Validity Period (days): 3650
Trên trang Thông tin Chứng chỉ thứ 2, tôi để trống tất cả các trường trừ những trường đã được điền.
Trên trang Thông tin cặp khóa, tôi để mặc định
Key Size : 2048
Algorithm : RSA
- Trên trang Tiện ích mở rộng sử dụng chính, tôi đã kiểm tra mặc định.
[X] Include Key Usage Extension
[X] This extension is critical
Capabilities:
[X] Signature
- Trên trang Tiện ích mở rộng sử dụng khóa mở rộng, tôi đã kiểm tra mặc định.
[X] Include Extended Key Usage Extension
[X] This extension is critical
Capabilities:
[X] Code Signing
Trên trang mở rộng ràng buộc cơ bản, không có gì được kiểm tra (mặc định).
Trên trang Tiện ích mở rộng tên thay thế chủ đề, tôi để lại mặc định đã chọn và không thêm bất cứ thứ gì khác.
[X] Include Subject Alternate Name Extension
- Bật Chỉ định vị trí cho trang chứng chỉ, tôi đặt
Keychain: System
Tôi bấm vào Tạo và được nhắc nhập mật khẩu của tôi.
Quay trở lại Keychain Access
ứng dụng, tôi đã System
nhấp gdb-cert
và nhấp chuột phải vào và bên dưới menu thả xuống Trust
, tôi đã thay đổi tất cả các trường thành Always Trust
.
Máy tính khởi động lại.
Tại Terminal, tôi chạy codesign -s gdb-cert /usr/local/bin/gdb
. Tôi đã nhập mật khẩu của mình khi được nhắc.
Tại nhà ga, tôi chạy echo "set startup-with-shell off" >> ~/.gdbinit
Tôi đã chạy gdb myprogram
và sau đó start
trong bảng điều khiển gdb. Ở đây, tôi tin rằng, nó đã nhắc tôi nhập mật khẩu. Sau đó, tất cả các lần chạy tiếp theo, nó không nhắc mật khẩu của tôi.