2010-05-26 36 views
17

Câu hỏi đã được hỏi trước và tôi thấy báo cáo lỗi trên các nhóm tin ddd nhưng không có giải pháp được đề xuất nào phù hợp với tôi.ddd bị treo khi bắt đầu

Nó xuất hiện nhưng khi bạn cố gắng làm bất cứ điều gì như mở tệp, nó treo bằng thông báo "đợi cho đến khi GDB sẵn sàng".

Một thực tế quan trọng, được báo cáo bởi những người khác nữa, là nó hoạt động tốt cho một số người dùng chứ không phải cho người khác. Tôi đã so sánh các môi trường và không thể tìm thấy bất kỳ sự khác biệt đáng kể nào. Mọi đề xuất sẽ được đánh giá cao nhất.

+0

có thể không phải là một ý tưởng tồi để đăng nội dung bạn đã thử ngay cả khi nó không hoạt động hoặc thậm chí có thể liên kết đến (các) báo cáo lỗi liên quan –

+0

điểm được thực hiện. Tôi đã thử: xóa .gdbinit. Thay đổi lời nhắc qua .gdbinit thành "(gdb)" (dấu cách không gian đáng kể). Tôi đã xóa initrc của mình. Không làm việc. Dưới đây là các liên kết đến báo cáo lỗi và các bản sửa lỗi được đề xuất (mà đối với tôi không hoạt động): http://bugs.gentoo.org/show_bug.cgi?id=93543#c10 http://osdir.com/ml/debugging .ddd.bugs/2003-02/msg00005.html –

Trả lời

23

Xóa đường nối ~/.ddd để khắc phục sự cố.

+0

Sạch sẽ và đơn giản. Điều này phải lan rộng ra thế giới, tôi gần như đã từ bỏ ** ddd ** trước khi thấy điều này – albfan

+0

Giải quyết vấn đề cho tôi. Một lần. Sau đó, vấn đề lại xuất hiện. Và sau đó nó giải quyết nó một lần nữa. Và cứ thế. Tóm lại, tôi phải xóa ~/.ddd mỗi khi tôi gọi ddd. –

2

Tôi nghĩ rằng việc xóa tệp init bên trong .ddd cũng sẽ giải quyết vấn đề này. Không cần phải xóa toàn bộ thư mục .ddd. Tôi đã thử và nó đã hoạt động !

Ngoài ra, nếu bạn sửa đổi rộng rãi tùy chọn mặc định ddd như Nút và Hiển thị biểu đồ, bạn có thể di chuyển tệp init của mình ra bên ngoài thư mục này và sau đó sao chép một số tùy chọn trở lại tệp init được tạo bởi ddd theo mặc định.

Lưu ý: Khi bạn khởi động lại ddd sau khi xóa tệp init, nó sẽ tạo tệp init mặc định.

0

Đề xuất của giải mã chỉ đơn giản là xóa tệp init cũng làm việc cho tôi.

Và đối với những người không biết, ~/.ddd là thư mục .ddd trong thư mục chính của bạn.

1

Nếu vấn đề vẫn tồn tại, thực hiện giải pháp sau đây có thể giúp:

  • ddd mở như bạn bình thường (ví dụ ddd --debugger bashdb script.sh.)
  • loại exit ở khung bên dưới của ddd

này dường như giết một thể hiện của bashdb, và sau đó một thể hiện khác của bashdb dường như chạy. Phiên bản bashdb thứ hai này dường như hoạt động tốt, với nguồn bash-script cuối cùng xuất hiện trong ngăn trên cùng và cho phép bạn duyệt qua và gỡ lỗi.

16

Đã gặp sự cố này. Giải pháp dễ dàng như được đăng ở trên là xóa tệp init trong thư mục ~/.ddd /.

Nhưng điều đó có nghĩa là tất cả các tùy chỉnh của bạn sẽ biến mất. Vì vậy, tôi bắt đầu săn tìm nguyên nhân thực sự. Tôi quan sát thấy vấn đề chỉ xảy ra sau khi tôi đã sử dụng hộp thoại "Cài đặt GDB". Khi bạn mở hộp thoại này, tệp init được đề cập ở trên sẽ phát triển vì nhiều cài đặt gdb sẽ được lưu trữ ở đó.

Sau khi thu hẹp các dòng bổ sung đó, tôi đã tìm thấy "dòng vi phạm". Sự cố là do cài đặt cho lời nhắc mở rộng. Sau khi mở các thiết lập GDB thoại dòng này sẽ đọc như

bộ mở rộng nhắc không được thiết lập \ n \

này "not set" là những gì gdb sẽ báo cáo về "Chương trình mở rộng nhắc". Unfortunatley "thiết lập mở rộng-nhắc là loại buggy trong gdb, vì vậy nếu tôi nhập" thiết lập mở rộng nhanh chóng không được thiết lập "trong một gdb chạy từ một trình bao mà không ddd tham gia gdb sẽ lockup là tốt.

Dường như cách an toàn duy nhất để đặt lời nhắc mở rộng là khi nó chứa chuỗi "(gdb)". Vì vậy, tôi biến đổi dòng vi phạm trong file init và bây giờ nó đọc như thế này:

bộ mở rộng-prompt (gdb) \ n \

Với thiết lập này tôi không gặp phải vấn đề nữa. Hy vọng rằng sẽ giúp trong trường hợp của bạn quá.

+2

Điều này giải quyết vấn đề cho tôi là tốt, mà không cần phải clobber cài đặt của tôi. – Anthony

+1

Tôi cũng tìm thấy giải pháp này, nhưng để trống trường giá trị. Đặt giá trị vẫn bị treo khi khởi động. –

5

Thực hiện Ctrl + D, sau đó chọn "Khởi động lại DDD" có vẻ phù hợp với tôi.

+3

Nó cũng làm việc cho tôi. Tuyệt quá! –

1

Sự cố phát sinh khi mở cửa sổ GDB Settings..., ngay cả khi không chạm vào bất kỳ cài đặt nào.

Vì xóa toàn bộ thư mục cấu hình ~/.ddd/ mỗi lần không phải là cách để đi nếu bạn đã tùy chỉnh môi trường DDD, tôi đã tìm thấy giải pháp để sửa chữa tệp ~/.ddd/init có thể giúp bạn mà không xóa toàn bộ cấu hình.

Đóng DDD và cởi mở với soạn thảo văn bản của bạn tập tin

~/.ddd/init 

Tìm dòng

set extended-prompt not set\n\ 

gỡ bỏ nó hoặc thay thế nó với

set extended-prompt \n\ 

Lưu và r un DDD. Nó sẽ bắt đầu như nó cần.

Vì nhiệm vụ này có thể tẻ nhạt để lặp lại mọi lúc, đặc biệt nếu bạn thay đổi cài đặt gdb khá thường xuyên như tôi, tôi đề nghị bạn tạo bí danh trong môi trường vỏ của bạn như thế này.

alias fix-ddd="sed '/not set/d' -i $HOME/.ddd/init" 

Cách tiếp cận cuối cùng này có lợi thế là nó sẽ hoạt động cho mọi cài đặt bị lỗi trong tệp init mà không có sự can thiệp cụ thể của bạn.


Nếu bạn không muốn sử dụng cli để sửa chữa các tập tin init cách tiếp cận khác là để chỉnh sửa file init như đề xuất trước đó và nếu nó xảy ra với bạn để mở cho bất kỳ lý do GDB Settings... bảng sau đó nhớ vô hiệu hóa trong menu Edit tùy chọn Save Options và để nó bị tắt cho đến khi DDD tiếp theo khởi động lại.


Vì lợi ích của sự hoàn chỉnh (như đã nêu bởi @hmogal) đánh

CTRL+d 

trong treo GDB giết GDB và khởi động lại nó cho phép sử dụng DDD. Thật không may phương pháp này không phải là một giải pháp tốt vì nó xóa toàn bộ cấu hình GDB bên trong tệp init, ngay cả các cài đặt được điều chỉnh cụ thể bởi bạn. Vì vậy, chú ý.


Mọi thứ được kiểm tra bằng DDD 3.2.12.

1

Sử dụng Ctrl + D bật lên một hộp thoại yêu cầu khởi động lại GDB để khắc phục sự cố.Trong trường hợp của tôi xóa ~/.ddd hoặc init tập tin trong thư mục cụ thể này đã không giúp đỡ.

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