ããã¯ããªã«ãããããŠæžãããã®ïŒ
ã¢ããªã±ãŒã·ã§ã³ããã¬ãŒã¹ããŠããŠãã¢ããªã±ãŒã·ã§ã³ãäŸåããŠããå
±æã©ã€ãã©ãªãŒã颿°åŒã³åºãã®ãã¬ãŒã¹ã
ããŠã¿ãããªãšæããŸããŠã
æã 䜿ã£ãŠããã³ãã³ããåºãŠããŸããããšã³ããªãŒãšããŠãŸãšããããšæããŸãã
ãé¡
curlã³ãã³ãããé¡ã«ãOpenSSLãžã®äŸåã確èªãã颿°åŒã³åºãã®ãã¬ãŒã¹ããŠã¿ãããšæããŸãã
ç°å¢
ä»åã®ç°å¢ã¯ãã¡ãã
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.2 LTS Release: 24.04 Codename: noble $ uname -srvmpio Linux 6.8.0-53-generic #55-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 17 15:37:52 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
確èªããŠã¿ã
ã§ã¯ãcurlããé¡ã«ç¢ºèªããŠã¿ãŸãããã
curlãäŸåããŠããå ±æã©ã€ãã©ãªãŒã調ã¹ã
ããã¯lddã³ãã³ãã§è¡ããŸãã
$ ldd --version ldd (Ubuntu GLIBC 2.39-0ubuntu8.4) 2.39 Copyright (C) 2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. äœè Roland McGrath ããã³ Ulrich Drepperã
Ubuntu Manpage: ldd - 共有オブジェクトへの依存関係を表示する
確èªã
$ ldd $(which curl)
察象ã®å®è¡ãã¡ã€ã«ãã¹ãæå®ããå¿ èŠãããã®ã§ãä»åã¯whichãšçµã¿åãããŠããŸãã
çµæã¯ãã¡ãã§ãã
linux-vdso.so.1 (0x00007ffd6df90000) libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x000072b3256af000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x000072b325693000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000072b325400000) libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x000072b325668000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x000072b325646000) librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x000072b325626000) libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x000072b32538f000) libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x000072b325612000) libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x000072b3252e5000) libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000072b324c00000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x000072b325291000) libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x000072b325232000) liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x000072b325222000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x000072b325168000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x000072b32515a000) /lib64/ld-linux-x86-64.so.2 (0x000072b3257c2000) libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x000072b324a53000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x000072b324859000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x000072b324811000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x000072b3247bc000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x000072b324738000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x000072b32466f000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x000072b32512a000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x000072b325124000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x000072b325117000) libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x000072b324655000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x000072b324632000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x000072b32448e000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x000072b324478000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x000072b324471000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x000072b32445e000) libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x000072b324452000)
OpenSSLã®ã©ã€ãã©ãªãŒã¯ãã¡ãã§ããã
$ ldd $(which curl) | grep ssl libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007707038b3000)
çµæãã¡ãã£ãšé·ããªããŸããã確å®ã«ç¥ãã«ã¯-v
ãªãã·ã§ã³ã䜿ãã®ããããããããŸããã
$ ldd -v $(which curl) linux-vdso.so.1 (0x00007ffed0f4c000) libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x000078e2a9f9c000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x000078e2a9f80000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000078e2a9c00000) libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x000078e2a9f55000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x000078e2a9f33000) librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x000078e2a9f13000) libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x000078e2a9ea2000) libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x000078e2a9e8e000) libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x000078e2a9b56000) libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000078e2a9600000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x000078e2a9e3a000) libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x000078e2a95a3000) liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x000078e2a9e28000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x000078e2a94e9000) libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x000078e2a9e1a000) /lib64/ld-linux-x86-64.so.2 (0x000078e2aa0af000) libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x000078e2a933c000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x000078e2a9142000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x000078e2a90fa000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x000078e2a90a5000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x000078e2a9021000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x000078e2a8f58000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x000078e2a9b2a000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x000078e2a9b24000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x000078e2a9b17000) libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x000078e2a8f3e000) libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x000078e2a8f1b000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x000078e2a8d77000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x000078e2a8d61000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x000078e2a8d5a000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x000078e2a8d47000) libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x000078e2a8d3b000) Version information: /usr/bin/curl: libcurl.so.4 (CURL_OPENSSL_4) => /lib/x86_64-linux-gnu/libcurl.so.4 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libcurl.so.4: liblber.so.2 (OPENLDAP_2.200) => /lib/x86_64-linux-gnu/liblber.so.2 libgssapi_krb5.so.2 (gssapi_krb5_2_MIT) => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 libidn2.so.0 (IDN2_0.0.0) => /lib/x86_64-linux-gnu/libidn2.so.0 libssh.so.4 (LIBSSH_4_8_1) => /lib/x86_64-linux-gnu/libssh.so.4 libssh.so.4 (LIBSSH_4_5_0) => /lib/x86_64-linux-gnu/libssh.so.4 libldap.so.2 (OPENLDAP_2.200) => /lib/x86_64-linux-gnu/libldap.so.2 libcrypto.so.3 (OPENSSL_3.0.0) => /lib/x86_64-linux-gnu/libcrypto.so.3 libssl.so.3 (OPENSSL_3.0.0) => /lib/x86_64-linux-gnu/libssl.so.3 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libz.so.1: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6: ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2 /lib/x86_64-linux-gnu/libnghttp2.so.14: libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libidn2.so.0: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/librtmp.so.1: libhogweed.so.6 (HOGWEED_6) => /lib/x86_64-linux-gnu/libhogweed.so.6 libnettle.so.8 (NETTLE_8) => /lib/x86_64-linux-gnu/libnettle.so.8 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libgnutls.so.30 (GNUTLS_3_4) => /lib/x86_64-linux-gnu/libgnutls.so.30 /lib/x86_64-linux-gnu/libssh.so.4: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libcrypto.so.3 (OPENSSL_3.0.0) => /lib/x86_64-linux-gnu/libcrypto.so.3 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.27) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libgssapi_krb5.so.2 (gssapi_krb5_2_MIT) => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /lib/x86_64-linux-gnu/libpsl.so.5: libidn2.so.0 (IDN2_0.0.0) => /lib/x86_64-linux-gnu/libidn2.so.0 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libssl.so.3: libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libcrypto.so.3 (OPENSSL_3.0.3) => /lib/x86_64-linux-gnu/libcrypto.so.3 libcrypto.so.3 (OPENSSL_3.0.0) => /lib/x86_64-linux-gnu/libcrypto.so.3 /lib/x86_64-linux-gnu/libcrypto.so.3: libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.16) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libgssapi_krb5.so.2: libk5crypto.so.3 (k5crypto_3_MIT) => /lib/x86_64-linux-gnu/libk5crypto.so.3 libkrb5support.so.0 (krb5support_0_MIT) => /lib/x86_64-linux-gnu/libkrb5support.so.0 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.27) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libkrb5.so.3 (krb5_3_MIT) => /lib/x86_64-linux-gnu/libkrb5.so.3 /lib/x86_64-linux-gnu/libldap.so.2: libsasl2.so.2 (SASL2) => /lib/x86_64-linux-gnu/libsasl2.so.2 liblber.so.2 (OPENLDAP_2.200) => /lib/x86_64-linux-gnu/liblber.so.2 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.28) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.22) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libgnutls.so.30 (GNUTLS_3_4) => /lib/x86_64-linux-gnu/libgnutls.so.30 /lib/x86_64-linux-gnu/liblber.so.2: libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.28) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libzstd.so.1: libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libbrotlidec.so.1: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libunistring.so.5: libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.32) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libgnutls.so.30: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libidn2.so.0 (IDN2_0.0.0) => /lib/x86_64-linux-gnu/libidn2.so.0 libhogweed.so.6 (HOGWEED_6) => /lib/x86_64-linux-gnu/libhogweed.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libtasn1.so.6 (LIBTASN1_0_3) => /lib/x86_64-linux-gnu/libtasn1.so.6 libp11-kit.so.0 (LIBP11_KIT_1.0) => /lib/x86_64-linux-gnu/libp11-kit.so.0 libnettle.so.8 (NETTLE_8) => /lib/x86_64-linux-gnu/libnettle.so.8 /lib/x86_64-linux-gnu/libhogweed.so.6: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libnettle.so.8 (NETTLE_8) => /lib/x86_64-linux-gnu/libnettle.so.8 /lib/x86_64-linux-gnu/libnettle.so.8: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libgmp.so.10: libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libkrb5.so.3: libresolv.so.2 (GLIBC_2.9) => /lib/x86_64-linux-gnu/libresolv.so.2 libk5crypto.so.3 (k5crypto_3_MIT) => /lib/x86_64-linux-gnu/libk5crypto.so.3 libkrb5support.so.0 (krb5support_0_MIT) => /lib/x86_64-linux-gnu/libkrb5support.so.0 libkeyutils.so.1 (KEYUTILS_1.0) => /lib/x86_64-linux-gnu/libkeyutils.so.1 libkeyutils.so.1 (KEYUTILS_1.5) => /lib/x86_64-linux-gnu/libkeyutils.so.1 libkeyutils.so.1 (KEYUTILS_0.3) => /lib/x86_64-linux-gnu/libkeyutils.so.1 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.16) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libk5crypto.so.3: libkrb5support.so.0 (krb5support_0_MIT) => /lib/x86_64-linux-gnu/libkrb5support.so.0 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libcom_err.so.2: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libkrb5support.so.0: libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libsasl2.so.2: libcrypto.so.3 (OPENSSL_3.0.0) => /lib/x86_64-linux-gnu/libcrypto.so.3 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libbrotlicommon.so.1: libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libp11-kit.so.0: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libffi.so.8 (LIBFFI_CLOSURE_8.0) => /lib/x86_64-linux-gnu/libffi.so.8 libffi.so.8 (LIBFFI_BASE_8.0) => /lib/x86_64-linux-gnu/libffi.so.8 libc.so.6 (GLIBC_2.16) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.6) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.33) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.26) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libtasn1.so.6: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.38) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libkeyutils.so.1: libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libresolv.so.2: libc.so.6 (GLIBC_2.36) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_ABI_DT_RELR) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.34) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libffi.so.8: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.27) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
OpenSSLã®å ±æã©ã€ãã©ãªãŒã«å®çŸ©ãããŠããã·ã³ãã«ã確èªãã
次ã¯ãå ±æã©ã€ãã©ãªãŒã«å®çŸ©ãããŠããã·ã³ãã«ã確èªããŸãã
ããã«ã¯nmãreadelfãobjdumpã³ãã³ãã䜿ããŸããããããbinutilsã«å«ãŸããŠããã®ã§ãããã±ãŒãžãã€ã³ã¹ããŒã«ã
$ sudo apt install binutils
ãŸãã¯nmã³ãã³ãããã
Ubuntu Manpage: nm - list symbols from object files
-D
ãŸãã¯--dynamic
ãªãã·ã§ã³ãã€ããããšã§åçã·ã³ãã«ã衚瀺ã§ããŸãã
$ nm -D /lib/x86_64-linux-gnu/libssl.so.3
ããããåºåãããããšãå€ããšæãã®ã§ãããã¥ã¡ã³ããèŠãæ¹ããããã§ããããâŠã
çµã蟌ãã çµæã
$ nm -D /lib/x86_64-linux-gnu/libssl.so.3 | grep SSL_read 00000000000365b0 T SSL_read@@OPENSSL_3.0.0 000000000003a2f0 T SSL_read_early_data@@OPENSSL_3.0.0 0000000000036640 T SSL_read_ex@@OPENSSL_3.0.0
readelfã
Ubuntu Manpage: readelf - display information about ELF files
-s
ã--syms
ã--symbols
ãªãã·ã§ã³ã§ã·ã³ãã«ã衚瀺ããã®ã§ããã衚瀺å¹
ãè¶³ããªãã®ã§-W
ãŸãã¯--wide
ãªãã·ã§ã³ã
äžç·ã«äœ¿ãããšã«ãªããŸãã
$ readelf -sW /lib/x86_64-linux-gnu/libssl.so.3
çµæã¯ãã£ã±ãé·ãã®ã§ãäžéšã ãã
$ readelf -sW /lib/x86_64-linux-gnu/libssl.so.3 | grep SSL_read 673: 00000000000365b0 135 FUNC GLOBAL DEFAULT 15 SSL_read@@OPENSSL_3.0.0 777: 000000000003a2f0 342 FUNC GLOBAL DEFAULT 15 SSL_read_early_data@@OPENSSL_3.0.0 826: 0000000000036640 30 FUNC GLOBAL DEFAULT 15 SSL_read_ex@@OPENSSL_3.0.0
objdumpã
Ubuntu Manpage: objdump - display information from object files
-T
ãŸãã¯--dynamic-syms
ãªãã·ã§ã³ã§åçã·ã³ãã«ã衚瀺ã§ããŸãã
$ objdump -T /lib/x86_64-linux-gnu/libssl.so.3
çµæïŒäžéšïŒã
$ objdump -T /lib/x86_64-linux-gnu/libssl.so.3 | grep SSL_read 00000000000365b0 g DF .text 0000000000000087 OPENSSL_3.0.0 SSL_read 000000000003a2f0 g DF .text 0000000000000156 OPENSSL_3.0.0 SSL_read_early_data 0000000000036640 g DF .text 000000000000001e OPENSSL_3.0.0 SSL_read_ex
curlã®OpenSSL颿°ã®åŒã³åºãããã¬ãŒã¹ãã
æåŸã¯å ±æã©ã€ãã©ãªãŒã®é¢æ°åŒã³åºãããã¬ãŒã¹ããŸããããã«ã¯ltraceã䜿ããŸãã
Ubuntu Manpage: ltrace - A library call tracer
ã¡ãªã¿ã«ãã·ã¹ãã ã³ãŒã«ã®å Žåã¯straceã䜿ããŸãã
Javaアプリケーションをstraceで追う - CLOVER🍀
Ubuntu Manpage: strace - trace system calls and signals
ãããªæãã§ã¢ããªã±ãŒã·ã§ã³ã®å®è¡æã«ltraceçµç±ã§åŒã³åºããšãlibcã®ãã®ãããã¬ãŒã¹ããªããããªã®ã§
$ ltrace curl https://kazuhira-r.hatenablog.com
-l
ãŸãã¯--library
ã§å
±æã©ã€ãã©ãªãŒãæå®ããã
$ ltrace -l 'libssl.so.*' curl https://kazuhira-r.hatenablog.com 2>&1 | less
-e
ã§é¢æ°ãæå®ããããšã«ãªããŸãã
$ ltrace -e 'SSL_*' curl https://kazuhira-r.hatenablog.com
ã©ã¡ããglobãã¿ãŒã³ã䜿ããŸãã
$ ltrace -l 'libssl.so.*' curl https://kazuhira-r.hatenablog.com 2>&1 | grep SSL_read | head -n 10 libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 0xffffffff libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780 <unfinished ...> <... SSL_read resumed> ) = 40 libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 9 libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 0xffffffff libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 0xffffffff libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 0xffffffff libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5a7e0, 0x4000, 0x77dc57e05780) = 0x4000 libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5e810, 0x4000, 0x77dc57e05780) = 0xffffffff libcurl.so.4->SSL_read(0x5d0b1d96a300, 0x5d0b1da5e810, 0x4000, 0x77dc57e05780) = 0x4000 $ ltrace -e 'SSL_*' curl https://kazuhira-r.hatenablog.com 2>&1 | grep SSL_read | head -n 10 libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780) = 0xffffffff libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780 <unfinished ...> <... SSL_read resumed> ) = 40 libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780) = 9 libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780) = 0xffffffff libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780) = 0xffffffff libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a17e0, 0x4000, 0x7529a2805780) = 0x4000 libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a5810, 0x4000, 0x7529a2805780) = 0xffffffff libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a5810, 0x4000, 0x7529a2805780) = 0xffffffff libcurl.so.4->SSL_read(0x6551335b1300, 0x6551336a5810, 0x4000, 0x7529a2805780) = 0xffffffff
ãã䜿ããããªãªãã·ã§ã³ã¯ãã®ãããã§ããããã
- -e ⊠ãã¬ãŒã¹ãã颿°ãæå®ãããè€æ°åæžããå Žåã¯ORã«ãªã
- -l ⊠ãã¬ãŒã¹ããå ±æã©ã€ãã©ãªãŒãæå®ãããè€æ°åæžããå Žåã¯ORã«ãªã
- -f ⊠ãã¬ãŒã¹å¯Ÿè±¡ã®ã¢ããªã±ãŒã·ã§ã³ãforkãŸãã¯cloneã§åããã»ã¹ãäœæããŠãããã®åããã»ã¹ãå«ããŠã¢ã¿ãããã
- -t ⊠ãã¬ãŒã¹ã®åè¡ã®å é ã«æå»ã远å ããïŒtãå¢ãããšãã£ãšçްããæéã衚瀺ãããïŒ
- -p ⊠æå®ããPIDã®ããã»ã¹ã«å¯ŸããŠãã¬ãŒã¹ãè¡ãïŒç®¡çè æš©éãå¿ èŠïŒ
ãã ã-p
ã¯ã·ã³ãã«è§£æ±ºåŸã ãšæå³ããªãããã§ãâŠãã§ããã°èµ·åæã«ä»èŸŒãã§ããããæãã§ããã
ããããæã¯straceã«é Œã£ãæ¹ãããã®ãããããŸããã
ãããã«
curlããé¡ã«ãã¢ããªã±ãŒã·ã§ã³ãäŸåããå
±æã©ã€ãã©ãªãŒ â å
±æã©ã€ãã©ãªãŒã®å®çŸ© â å
±æã©ã€ãã©ãªãŒã®
颿°åŒã³åºãã確èªããŠã¿ãŸããã
ãããŸãå ±æã©ã€ãã©ãªãŒããã¬ãŒã¹ããããšããªãã£ãã®ã§ããããããšå匷ã«ãªããŸããã
straceã䜿ãããšã¯ãã£ãã®ã§ãããèµ·ååŸã®ããã»ã¹ã«éäžããã¢ã¿ããããå Žåã¯ã¡ãã£ãšæ³šæãå¿
èŠãªããšã
ããããŸãããâŠã
èªåã®å Žåã¯ãããã䜿ãããšã¯ãªããšæãã®ã§ãããããããã®ã調ã¹ãæã«é ã®é ã«å ¥ããŠãããšããããªãšæããŸããã