valgrind로 C++ 프로그램을 실행하려고하지만 프로그램에서 stdin에서 사용자 입력이 필요한 몇 가지 사항이 있지만 valgrind로 실행하면 사용자가 프로그램에 대해 아무 것도 입력하지 않으면이 문제가 해결 될 수 있습니까?C++에서 필요로 할 때 valgrind가 사용자 입력을 읽을 수있게 만들기
주위를 검색했지만 답변을 찾지 못했습니다.
valgrind로 C++ 프로그램을 실행하려고하지만 프로그램에서 stdin에서 사용자 입력이 필요한 몇 가지 사항이 있지만 valgrind로 실행하면 사용자가 프로그램에 대해 아무 것도 입력하지 않으면이 문제가 해결 될 수 있습니까?C++에서 필요로 할 때 valgrind가 사용자 입력을 읽을 수있게 만들기
주위를 검색했지만 답변을 찾지 못했습니다.
나는 그것을 시도하지 않은,하지만 난 그 사람 페이지에서 이걸 발견 :
당신이 (말 3) 다른 FD를 지정 Valgrind의의 입력에 사용하면 어떻게됩니까--input-fd=<number> [default: 0, stdin]
Specify the file descriptor to use for reading input from the
user. This is used whenever valgrind needs to prompt the user
for a decision.
?
다음은 cgi 프로그램 (./myexe)이 stdin에서 읽는 Linux 예제입니다. 입력을 파일 mystdin에 저장합니다. 따라서 valgrind는 터미널에서 입력을 읽을 수 있습니다. --input-fd = 3을 수행하고 쉘에게/dev/tty를 파일 설명자 3으로 리디렉션하도록 지시합니다. gdb를 제어 할 수 있도록/dev에서 stdin의 리디렉션을 추가합니다/tty는 valgrind에 대한 --db-command 매개 변수에 있습니다. 이것은 아마도 더 나쁜 경우입니다. 희망이 도움이됩니다.
valgrind --input-fd=3 --db-command='gdb -nw %f %p < /dev/tty' --db-attach=yes ./myexe < mystdin 3</dev/tty
valgrind가 의미하는 바를 확장해야 사용자가 아무 것도 입력 할 수 없습니다. valgrind를 사용하여 stdin을 여러 번 읽는 프로그램을 디버깅했습니다. –
내 프로그램을 시작하고 시작할 때 사용자 입력이 필요합니다 (표준 입력으로 숫자 입력). 콘솔에 일부 텍스트가 출력됩니다 ... 텍스트가 표시되지 않고 입력을 입력 할 수 없습니다. valgrind와 함께 실행할 때 콘솔 ... – Daniel
@Daneil은 이것을 작은 재생기로 끓여서 여기에 코드를 게시합니다. 대형 응용 프로그램을 디버깅 할 때에도 그 동작을 보지 못합니다. –