tôi biết câu trả lời này, tôi đưa nó lên đây để người khác nhìn thấy nóEclipse CDT đa luồng gỡ lỗi không tối ưu - làm thế nào để chạy một chủ đề độc quyền?
Nếu bạn sử dụng Eclipse CDT, bạn có thể hiểu được nhật thực đó không phải là một trình gỡ lỗi, nó chỉ là một ứng dụng front- kết thúc, cụ thể cho GDB. Vì vậy, khi gỡ lỗi chương trình C++, bạn thực sự chỉ sử dụng GDB một cách thoải mái hơn. Nếu bạn phải debug một chương trình đa luồng trong Eclipse CDT, bạn sẽ nhận ra rằng mọi thứ nhanh chóng trở nên bận rộn bởi vì khi bạn nhấn breakpoint, tất cả các luồng dừng lại và khi một cố gắng thực hiện một dòng trong một chuỗi cụ thể, nó cũng chạy các chủ đề khác. Để cho nó hoạt động đúng, các luồng phải có khả năng chạy một cách tùy ý và toàn bộ để khi lập trình thực thi một dòng, nó chỉ thực thi luồng cụ thể.
Vì vậy, theo mặc định, cài đặt của gdb theo mặc định sẽ tắt tính năng "khóa lịch biểu". Nếu bạn gỡ lỗi các ứng dụng đa luồng, bạn sẽ hiểu rằng điều này phải nằm trong GDB để có được hành vi mong muốn. Làm cách nào để chạy lệnh này:
set scheduler-locking on
trong GDB trong eclipse CDT?
Bạn thực thi chính xác kịch bản GDB từ bên trong Eclipse như thế nào? – rbaleksandar