일반적인 strace
호출은 다음과 같은 출력을 제공합니다.
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
나는 다른 터미널 플래그를 보고 싶었고 -v
다음을 시도했습니다 -e abbrev=none
.
환경, 통계, 용어 등 호출의 축약되지 않은 버전을 인쇄합니다.
하지만 이 두 옵션은 더 많은 콘텐츠를 표시하는 것이 아니라 다음을 표시합니다.
ioctl(0, TCGETS, {c_iflags=0x5500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
답변1
보고 있다암호, 이는 사용 가능한 유일한 동작입니다. 축약된 출력의 경우에만 이 네 가지 플래그의 전송 속도와 상태가 명시적으로 인쇄됩니다. 그렇지 않으면 자세한 정보를 제공하기 위해 16진수 값이 인쇄됩니다. termios 플래그를 찾아야합니다다른 곳에서.
if (abbrev(tcp)) {
tprints("{");
printxval(baud_options, tios.c_cflag & CBAUD, "B???");
tprintf(" %sopost %sisig %sicanon %secho ...}",
(tios.c_oflag & OPOST) ? "" : "-",
(tios.c_lflag & ISIG) ? "" : "-",
(tios.c_lflag & ICANON) ? "" : "-",
(tios.c_lflag & ECHO) ? "" : "-");
return;
}
tprintf("{c_iflags=%#lx, c_oflags=%#lx, ",
(long) tios.c_iflag, (long) tios.c_oflag);
tprintf("c_cflags=%#lx, c_lflags=%#lx, ",
(long) tios.c_cflag, (long) tios.c_lflag);
tprintf("c_line=%u, ", tios.c_line);