strace 출력: 약어를 비활성화하면 출력이 완전히 변경됩니다.

strace 출력: 약어를 비활성화하면 출력이 완전히 변경됩니다.

일반적인 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);

관련 정보