From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 4A3273858D20 for ; Fri, 28 Jul 2023 13:59:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4A3273858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-307d58b3efbso2068724f8f.0 for ; Fri, 28 Jul 2023 06:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690552766; x=1691157566; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=f/IRiDNVa7p/DhxR+uqG5ILkpgNvkpexus3FO2vHcPw=; b=rX3mzIhtfALp9Yf5rfbLdQQN6XOGo546W6idJiiolXdxpRY0G6u6h2vRSG89iQkRsS ojBiLJLfgyJyxA8dJoB0qQ1M9purkzmCtp2tRnKJA7rbwcJ5ftBlYTq1tKL0NVYqxKE5 56IY71PDys2k7Yp8ZxHOv3rCygO33/AzKQLoM/qKhGGNo6oo/S4O1AB2Np5DpvOjo7de TtCz0XQ0LB6/cUXirKuKf4kSWN/Lvx7mt62s2xne2HQDyPJC4cML8R8MoYPDUJwlbZQC jJQsr41sZ2hTHmPkrdiFk/TOkSWI3m5HA65CyTPMl37z6mmGmshfNSE8uDTBTETbPajy fFRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690552766; x=1691157566; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=f/IRiDNVa7p/DhxR+uqG5ILkpgNvkpexus3FO2vHcPw=; b=MpsbuejOonuWsdks3gnoAibA7ItvNHd1j8DnkftduLa95/lPjznADv7RLg24CdhoS0 RWox+x5B729r1uL0YLGHs2oh9i51PjkeaLfV4sBR+itevqDPP9IvISkhHrgiUFAaes/W F5ohQGcBaIJtWh3sexSu+sEJudTwQapSPo3jv79GYVvNLiieSSHimNJMylh3sI3WxcU7 jFlFGEr8nB3OO4dEW571kHifmd0/WreDCjlgUyccjalx5l9/7CR1+4JmJ07rBlKuhpIQ m5t71mJm7P9KfgEmVT25DLm4uVTXY6Ajrv+4ePYPKGWv8Hy/Gz/IbnY7vIDrvzkg0dzk RWIQ== X-Gm-Message-State: ABy/qLY2gflzhf+Zes5HJHabBo7grnMoipmNFUUWvMqOSfv28MVLWkiC fGxltpBbvW1kNwjPuwrjWPwTKiUEdlORMItnoJE9dC437cSYxs8u X-Google-Smtp-Source: APBJJlEY147hQFD+qSbOEKudawzZdaMuBxpchfBOcXndtqLej4KtFm6h7pIBXjhZfG6S1rgBsNLcBMRNlcU+6ArZ7Ak= X-Received: by 2002:adf:d845:0:b0:317:5cfb:714c with SMTP id k5-20020adfd845000000b003175cfb714cmr1684069wrl.25.1690552765666; Fri, 28 Jul 2023 06:59:25 -0700 (PDT) MIME-Version: 1.0 From: wei gong Date: Fri, 28 Jul 2023 21:59:13 +0800 Message-ID: Subject: Using systemtap in an Environment with Multiple Versions of glibc To: systemtap@sourceware.org Content-Type: multipart/alternative; boundary="000000000000125ab706018c7d78" X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,MANY_SPAN_IN_TEXT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000125ab706018c7d78 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear SystemTap Community, I am currently experiencing challenges using SystemTap in an environment that includes multiple versions of glibc. I am hoping someone here may have encountered a similar issue and might be able to provide guidance. To provide some background, here is a brief account of what I=E2=80=99ve be= en undertaking and the hurdles I=E2=80=99ve stumbled upon=E2=80=A6 Here is my environment information: CentOS Linux release 7.6 (Final) Kernel: 4.19.0, and the corresponding debug packages have been installed. Currently, my environment has glibc-2.17-326.el7_9.x86_64. Because I want to use a newer version of GCC, I installed an additional version of GCC and matched it with glibc 2.21, which I placed in the /opt/compiler/gcc-8.2/ directory. My software is compiled using this newly installed version of gcc-8.2. The information of my compiled software is: 1. /opt/compiler/gcc-8.2/bin/ldd myapp linux-vdso.so.1 (0x00007ffe7a9e7000) libpixman-1.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libpixman-1.so.0 ( 0x00007fa93144a000) libz.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libz.so.1 (0x00007fa93142d000) libutil.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libutil.so.1 ( 0x00007fa931428000) libglib-2.0.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libglib-2.0.so.0 ( 0x00007fa931112000) libdl.so.2 =3D> /opt/compiler/gcc-8.2/usr/lib/libdl.so.2 (0x00007fa93110c00= 0) libcurl.so.4 =3D> /opt/compiler/gcc-8.2/usr/lib/libcurl.so.4 ( 0x00007fa9310ab000) libaio.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libaio.so.1 (0x00007fa930ea9= 000 ) libstdc++.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libstdc++.so.6 ( 0x00007fa930d1d000) libgflags.so.2.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libgflags.so.2.1 ( 0x00007fa930afc000) libprotobuf.so.8 =3D> /opt/compiler/gcc-8.2/usr/lib/libprotobuf.so.8 ( 0x00007fa9307ea000) libleveldb.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libleveldb.so.1 ( 0x00007fa930595000) libm.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libm.so.6 (0x00007fa93048f000) libgcc_s.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libgcc_s.so.1 ( 0x00007fa930475000) libpthread.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libpthread.so.0 ( 0x00007fa930455000) libc.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libc.so.6 (0x00007fa9302b0000) /opt/compiler/gcc-8.2/lib64/ld-linux-x86-64.so.2 (0x00007fa9316f3000) libpcre.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libpcre.so.1 ( 0x00007fa93004e000) libsnappy.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libsnappy.so.1 ( 0x00007fa92fe47000) 2. /usr/bin/ldd myapp linux-vdso.so.1 =3D> (0x00007fffcff84000) libpixman-1.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libpixman-1.so.0 ( 0x00007f6691442000) libz.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libz.so.1 (0x00007f66918ee000) libutil.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libutil.so.1 ( 0x00007f66918e9000) libglib-2.0.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libglib-2.0.so.0 ( 0x00007f669112c000) libdl.so.2 =3D> /opt/compiler/gcc-8.2/usr/lib/libdl.so.2 (0x00007f66918e300= 0) libcurl.so.4 =3D> /opt/compiler/gcc-8.2/usr/lib/libcurl.so.4 ( 0x00007f6691882000) libaio.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libaio.so.1 (0x00007f6690f2a= 000 ) libstdc++.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libstdc++.so.6 ( 0x00007f6690d9f000) libgflags.so.2.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libgflags.so.2.1 ( 0x00007f6690b7e000) libprotobuf.so.8 =3D> /opt/compiler/gcc-8.2/usr/lib/libprotobuf.so.8 ( 0x00007f669086c000) libleveldb.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libleveldb.so.1 ( 0x00007f6690618000) libm.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libm.so.6 (0x00007f669177a000) libgcc_s.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libgcc_s.so.1 ( 0x00007f6691760000) libpthread.so.0 =3D> /opt/compiler/gcc-8.2/usr/lib/libpthread.so.0 ( 0x00007f6691740000) libc.so.6 =3D> /opt/compiler/gcc-8.2/usr/lib/libc.so.6 (0x00007f6690473000) /opt/compiler/gcc-8.2/lib64/ld-linux-x86-64.so.2 =3D> /lib64/ld-linux-x86- 64.so.2 (0x00007f66916eb000) libpcre.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libpcre.so.1 ( 0x00007f6690211000) libsnappy.so.1 =3D> /opt/compiler/gcc-8.2/usr/lib/libsnappy.so.1 ( 0x00007f669000b000) VERSION: systemtap 4.0 When I use systemtap (whether installed through yum or compiled from source code) to probe myapp, it always gives an error: ./stap -d /path/myapp-DDEBUG_UNWIND -e 'probe process("/path/myapp").function("funtion_name").call {print_ubacktrace()}' WARNING: Missing unwind data for a module, rerun with 'stap -d (unknown; retry with -DDEBUG_UNWIND)' _stp_stack_unwind_one_user:496: STARTING user unwind 0x9e527b _stp_stack_unwind_one_user:512: CONTINUING user unwind to depth 1 unwind:1483: pc=3D9e527b, 9e527b unwind:1522: No module found for pc=3D9e527b _stp_stack_unwind_one_user:537: ret=3D-22 PC=3D9e527b SP=3D7fffcd857f50 _stp_stack_unwind_one_user:496: STARTING user unwind I can retrieve it normally when using the program on my system=EF=BC=9A ./stap -d /usr/sbin/ls -e 'probe process("ls").function("xmalloc").call {print_ubacktrace()}' -c "ls /" 0x411680 : xmalloc+0x0/0x20 [/usr/bin/ls] 0x411854 : xmemdup+0x14/0x30 [/usr/bin/ls] 0x40efea : clone_quoting_options+0x2a/0x40 [/usr/bin/ls] 0x402c10 : main+0x350/0x1a14 [/usr/bin/ls] 0x7f94b8081555 [/usr/lib64/libc-2.17.so+0x22555/0x3ce000] 0x411680 : xmalloc+0x0/0x20 [/usr/bin/ls] 0x411854 : xmemdup+0x14/0x30 [/usr/bin/ls] 0x40efea : clone_quoting_options+0x2a/0x40 [/usr/bin/ls] 0x402c74 : main+0x3b4/0x1a14 [/usr/bin/ls] 0x7f94b8081555 [/usr/lib64/libc-2.17.so+0x22555/0x3ce000] ... WARNING: Missing unwind data for a module, rerun with 'stap -d /usr/lib64/ libc-2.17.so' WARNING: too many pending (warning) messages I=E2=80=99ve tried many methods but none of them have been effective. I don= =E2=80=99t quite understand the principles of systemtap, and I=E2=80=99m not sure why the pr= ogram compiled with a standalone gcc-8.2 cannot be used normally. Any advice, tips, or guidance you could provide would be immensely appreciated. Thank you in advance for your assistance! Best Regards, Wei Gong --000000000000125ab706018c7d78--