설정 프로그램이 다른 터미널에서 실행 중일 때 GDB에서 "제어 터미널을 설정할 수 없습니다" 경고를 어떻게 억제할 수 있습니까?

설정 프로그램이 다른 터미널에서 실행 중일 때 GDB에서 "제어 터미널을 설정할 수 없습니다" 경고를 어떻게 억제할 수 있습니까?

나는 프로그램을 디버깅하기 위해 GDB를 사용하고 있으며 그 출력을 GDB를 실행하는 터미널이 아닌 다른 터미널로 보내고 싶습니다. 이것이 내가 해온 일이다:

  1. 두 번째 터미널을 열고 를 사용하여 장치 이름을 확인한 tty후 비슷한 것을 얻으십시오 /dev/pts/14.
  2. 내 GDB 세션에서는 명령을 사용하여 tty /dev/pts/14출력을 터미널로 설정했습니다.
  3. 그런 다음 runGDB에서 명령을 실행하여 프로그램을 시작합니다.

이 설정은 출력을 터미널 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

관련 정보