나는 프로그램을 디버깅하기 위해 GDB를 사용하고 있으며 그 출력을 GDB를 실행하는 터미널이 아닌 다른 터미널로 보내고 싶습니다. 이것이 내가 해온 일이다:
- 두 번째 터미널을 열고 를 사용하여 장치 이름을 확인한
tty
후 비슷한 것을 얻으십시오/dev/pts/14
. - 내 GDB 세션에서는 명령을 사용하여
tty /dev/pts/14
출력을 터미널로 설정했습니다. - 그런 다음
run
GDB에서 명령을 실행하여 프로그램을 시작합니다.
이 설정은 출력을 터미널 2로 올바르게 지정하지만 문제는 터미널 2의 첫 번째 줄에 항상 다음이 표시된다는 것입니다.
warning: GDB: Failed to set controlling terminal: Operation not permitted
GDB를 루트로 실행하려고 시도했지만 sudo
동일한 경고가 표시되었습니다. 내 프로세스를 단순화하여 표현하면 다음과 같습니다.
# Terminal 2:
$ tty
/dev/pts/14
# Terminal 1:
$ gdb ./some-program
(gdb) tty /dev/pts/14
(gdb) run
이 경고의 원인과 이를 해결하거나 억제할 수 있는 방법을 설명할 수 있는 사람이 있습니까? 제어 터미널을 설정할 때 GDB는 무엇을 하려고 하며 왜 실패합니까?
노트:클래식 tty에서도 같은 일이 발생합니다./dev/tty3