2012-07-06 16 views
15

Tôi sử dụng gdb để gỡ lỗi mã cpp của mình. tôi đặt breakpoint theo cách này:Cách xác nhận hành động (trả lời "Y") trong tập lệnh gdb?

(gdb) break ParseDriver.cc:60 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) y 
Breakpoint 1 (ParseDriver.cc:60) pending. 

Để đơn giản hóa việc thiết breakpoint, tôi đã viết một kịch bản đơn giản gdb (tên breakpoints.gdb), nó chỉ đơn giản chỉ chứa một dòng:

break ParseDriver.cc:60 

tôi nguồn này tập lệnh trong thiết bị đầu cuối gdb, nhưng không thành công.

(gdb) source ~/breakpoints.gdb 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] 

Có vẻ như chúng ta cần trả lời Y trong tập lệnh để đặt điểm ngắt.

Vì vậy, làm thế nào tôi có thể trả lời Y trong tập lệnh gdb? Cảm ơn bạn trước.

+0

bản sao có thể có của [gdb: cách đặt điểm ngắt trên các thư viện được chia sẻ trong tương lai bằng cờ --command] (http://stackoverflow.com/questions/100444/gdb-how-to-set-breakpoints-on-future -shared-libraries-with-a-command-flag) – TooTone

Trả lời

32
(gdb) set breakpoint pending on 

Điều này sẽ làm gdb bỏ yêu cầu xác nhận, trích dẫn từ the docs:

Điều này cho thấy rằng một vị trí breakpoint không được công nhận nên tự động dẫn đến một breakpoint cấp phát được tạo ra.

1

Bạn có thể quấn lệnh của bạn với set confirm off/on và GDB sẽ không yêu cầu xác nhận.

+0

Đã không làm việc cho tôi. gdb không thể tạo điểm ngắt, nhưng nó không yêu cầu xác nhận. –

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