2010-02-04 106 views
25

Tôi có thể yêu cầu GDB trả lại từ một chức năng ngay lập tức với return và gọi hàm với call myFunction.Làm cách nào để GDB thoát khỏi vòng lặp?

Nhưng làm cách nào để thoát khỏi vòng lặp hiện tại? tức là hành động như thể nó đã đạt đến tuyên bố break;.

Có phải jump myfile.c:<linenumber> cách để thực hiện việc này không?

+0

Bạn có muốn thực hiện vòng lặp bình thường và 'ngắt' khỏi nó hoặc thay đổi thực thi bằng cách bỏ qua vòng lặp hoàn toàn không? Yêu cầu phân biệt với https://stackoverflow.com/questions/14651073/is-there-a-gdb-command-to-finish-a-loop-construct –

Trả lời

3

Tôi làm điều này:
1. thực hiện danh sách nguồn.
2. Đặt điểm ngắt tại dòng tiếp theo nơi vòng lặp kết thúc.
3. Tiếp tục

+8

Bạn thậm chí không cần điểm ngắt thực sự. Bạn có thể sử dụng 'until' để cho nó tiếp tục cho đến khi một số dòng nhất định. Đây là điểm ngắt một lần. –

+8

Đó không phải là đột phá vòng lặp, đó là chờ đợi cho đến khi vòng lặp kết thúc (mà có thể không bao giờ). –

+0

http://stackoverflow.com/questions/14651073/is-there-a-gdb-command-to-finish-a-loop-construct/ –

0

Một trong những cách có thể là đặt điều kiện của vòng lặp thành sai. Nhưng điều này có nghĩa là bạn sẽ phải đợi cho quá trình lặp lại hiện tại kết thúc.

Vì vậy, để tóm tắt các bước sẽ là:
1. Đặt một breakpoint ở dòng cuối cùng của vòng lặp
2. Tiếp tục
3. Khi hit breakpoint, thiết lập các biến điều kiện vòng lặp là false.

Nó sẽ không hoạt động như tuyên bố ngắt trực tiếp.

+1

Vâng, đây là những gì tôi thường làm, nhưng tôi chắc chắn phải có là một cách bắt chước 'ngắt; ' –

8

Bạn có thể sử dụng - cho đến khi thực hiện kết thúc vòng lặp.

Bạn nên cho nó ở cuối vòng lặp.

  • Hữu ích nếu bạn không cần bước lặp lại vòng lặp.
+0

Nếu tôi đọc tài liệu đúng (http://www.delorie.com/gnu/docs/gdb/gdb_38.html) tương đương với việc thiết lập điểm ngắt tạm thời sau vòng lặp - tôi đã tìm cách thoát khỏi vòng lặp. –

+0

mẹo này vẫn còn giá trị, tho không phải là câu trả lời cho câu hỏi. Có lẽ câu hỏi nên được mở rộng để bao gồm một tuyên bố spcific rằng bạn không muốn tính năng này? – hochl

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