Tôi có một chương trình và tôi đang cố gắng gỡ lỗi nó bằng gdb. Bên trong chương trình, tôi có các phương thức yêu cầu người dùng nhập một đầu vào bằng cách sử dụng stdin. Làm thế nào tôi có thể nhập đầu vào này khi tôi đang ở trong gdb? Để tôi có thể theo dõi các phương pháp của tôi hoạt động như thế nào?Làm thế nào để gỡ lỗi một chương trình lấy đầu vào của người dùng từ stdin với GDB?
24
A
Trả lời
21
$ cat >foo <<EOF
something
EOF
$ gdb -quiet /bin/cat
Reading symbols from /bin/cat...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install coreutils-8.12-7.fc16.x86_64
(gdb) run <foo
Starting program: /bin/cat <foo
something
[Inferior 1 (process 22436) exited normally]
(gdb)
1
Tôi vừa trải qua một vài thứ như thế này hôm qua và đệ trình thông qua một loạt lệnh "trợ giúp" trong gdb vì tôi không thể tìm thấy chính xác những gì tôi cần trên Internet.
Tôi đã sử dụng set variable *your_variable* = *your desired input*
sau khi tôi đã bắt đầu gdb và bắt đầu chạy mã của mình. Làm việc như người ở.
Tôi biết điều này là muộn, nhưng có thể nó sẽ giúp người khác.
+1
Bạn sẽ sử dụng nó như thế nào cho stdin? – Aralox
Các vấn đề liên quan
- 1. Làm cách nào để gỡ lỗi chương trình do một người dùng khác thực hiện?
- 2. Lấy đầu vào từ stdin sau freopen()
- 3. Làm thế nào để làm cho trình gỡ lỗi Valgrind bước qua một chương trình
- 4. Làm cách nào để sử dụng trình gỡ lỗi gdb MinGW để gỡ lỗi chương trình C++ trong Windows?
- 5. vấn đề gdb với chuyển hướng stdin
- 6. Lỗi gỡ lỗi từ xa với GDB
- 7. nhắn gdb lạ khi gỡ lỗi chương trình C++
- 8. làm thế nào để lấy đầu vào từ người dùng trong android
- 9. gdb - gỡ rối với đầu vào đường ống (không tranh cãi)
- 10. Làm thế nào để gỡ lỗi các chương trình WCF
- 11. Làm thế nào để gỡ lỗi chương trình với bộ xử lý tín hiệu cho SIGSEGV
- 12. Làm thế nào tôi có thể có Perl lấy đầu vào từ STDIN một ký tự cùng một lúc?
- 13. Làm cách nào để khởi động lại một chương trình dựa trên đầu vào của người dùng?
- 14. Làm thế nào để hạn chế gdb gỡ lỗi thành một chuỗi tại một thời điểm
- 15. Gỡ lỗi chương trình MinGW với gdb trên Windows, không chấm dứt khi xác nhận lỗi
- 16. nhận đầu vào từ stdin
- 17. Làm thế nào để phân tích tệp kết xuất lõi của chương trình với gdb?
- 18. Làm thế nào để gỡ lỗi với chuyển hướng stdin trong Xcode4?
- 19. Làm cách nào để gỡ lỗi bằng gdb?
- 20. Đối số gỡ lỗi dựa trên chương trình C với gdb
- 21. Làm thế nào để giải thích địa chỉ backtrace để gỡ lỗi với GDB
- 22. Visual studio + gdb gỡ lỗi từ xa
- 23. Làm thế nào để thoát gdb nếu chương trình thành công, ngắt nếu chương trình bị treo?
- 24. Làm thế nào để gỡ lỗi hạt nhân Linux với GDB và QEMU?
- 25. Làm thế nào để đọc đầu vào của người dùng thành một biến trong Bash?
- 26. Làm thế nào để gỡ lỗi/thực hiện một chương trình Ocaml từng bước?
- 27. Làm thế nào để tránh lặp lại dòng mới khi đọc đầu vào của người dùng?
- 28. Đầu vào đường ống vào chương trình C++ để gỡ lỗi trong Visual Studio
- 29. Làm cách nào để bật gỡ lỗi ngược trên chương trình đa luồng?
- 30. Làm thế nào để đính kèm trình gỡ lỗi IDE Rubymine vào một quá trình shell?
Đối với trường hợp đầu vào trực tiếp đơn giản hơn, câu hỏi giống như sau: http://stackoverflow.com/questions/455544 Tuy nhiên, có những trường hợp không bao gồm: 1) bạn cần xem stdout để quyết định stdin 2) thời gian thực tế và bấm phím là cần thiết như trong ncurses. Trong những trường hợp đó, có thể mong đợi có thể làm điều đó: http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –