AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[strace](unix)

Martin Hope
Martin von Wittich
Asked: 2022-03-22 08:02:28 +0800 CST

如何使用性能跟踪记录?

  • 2

我可以perf trace用作 的低开销替代品strace,例如跟踪所有 Apache 实例:

perf trace -p $(pidof apache2 | tr ' ' ',')

只运行最多 10 秒的跟踪:

perf trace -p $(pidof apache2 | tr ' ' ',') -- sleep 10

一些示例输出:

server ~ # perf trace -p $(pidof apache2 | tr ' ' ',') -- sleep 10 2>&1 | head
         ? (         ): apache2/8661  ... [continued]: poll()) = 0 Timeout
     0.022 ( 0.005 ms): apache2/8661 close(fd: 28                                                          ) = 0
     0.066 ( 0.007 ms): apache2/8661 read(fd: 13<pipe:[3452760950]>, buf: 0x7ffe815038ff, count: 1         ) = -1 EAGAIN Resource temporarily unavailable
         ? (         ): apache2/26492  ... [continued]: semop()) = 0
     0.088 (         ): apache2/8661 semop(semid: 557481986, tsops: 0x7f846e0cfd6c, nsops: 1               ) ...
         ? (         ): apache2/7580  ... [continued]: epoll_wait()) = 1
    46.136 (         ): apache2/26492 epoll_wait(epfd: 27<anon_inode:[eventpoll]>, events: 0x7f846dd0c698, maxevents: 5, timeout: 10000) ...
    46.081 ( 0.013 ms): apache2/7580 accept4(fd: 12<socket:[3452759675]>, upeer_sockaddr: 0x7ffe81503830, upeer_addrlen: 0x7ffe81503810, flags: 524288) = 28
    46.100 ( 0.010 ms): apache2/7580 semop(semid: 557481986, tsops: 0x7f846e0cfd60, nsops: 1               ) = 0
    46.116 ( 0.002 ms): apache2/7580 getsockname(fd: 28<socket:[3465711918]>, usockaddr: 0x7f846dd0a130, usockaddr_len: 0x7f846dd0a110) = 0

这按预期工作。现在我想将这些事件记录在一个文件中,以便以后详细分析它们。我曾预料perf trace record会这样做,但我什至不确定这是否正确记录:

server ~ # perf trace record -p $(pidof apache2 | tr ' ' ',') -- sleep 10
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0,312 MB perf.data (67 samples) ]

perf trace ... | wc -l总计约 12000 行,那么为什么record只记录 67 个样本?

我什至不确定读取此文件的正确命令是什么;不幸的是,手册页没有说。我假设它是perf trace -i perf.data,但这不会打印任何东西:

server ~ # perf trace -i perf.data
server ~ # 

perf script确实打印了一些东西,但它看起来不像perf trace输出:

server ~ # perf script | head
         apache2 10215 [002] 29556325.787512:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 20085 [006] 29556325.787597:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 20754 [000] 29556325.790512:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2  7580 [007] 29556325.790757:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2  8661 [001] 29556325.796044:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 10215 [006] 29556325.796845:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 20085 [004] 29556325.798481:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 10215 [004] 29556325.802922:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 20754 [001] 29556325.815999:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
         apache2 20085 [003] 29556325.816025:          1 cycles:ppp:  ffffffff83e5a704 native_write_msr+0x4 ([kernel.kallsyms])
linux strace
  • 1 个回答
  • 148 Views
Martin Hope
jrpear
Asked: 2021-09-13 08:52:06 +0800 CST

我可以跳过 strace 中的动态加载程序进行的系统调用吗?

  • 11

当我strace过去检查一个程序时,我经常很难找到来自动态加载程序的系统调用在哪里结束,而来自程序的系统调用从哪里开始。

一个简单的 hello world C 程序的输出strace ./hello是36 行。hello这是一个示例:

execve("./hello", ["./hello"], 0x7fffb38f4a30 /* 73 vars */) = 0
brk(NULL)                               = 0x1304000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe6715fe60) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=92340, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 92340, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f78d9fbd000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260|\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48

有没有办法忽略动态加载器系统调用?

linux strace
  • 1 个回答
  • 654 Views
Martin Hope
paramikoooo
Asked: 2020-02-05 01:27:46 +0800 CST

strace 除指定系统调用外的所有系统调用

  • 3

我怎样才能运行strace,并记录所有的系统调用,但不是read和不write?

strace system-calls
  • 1 个回答
  • 275 Views
Martin Hope
Nathaniel M. Beaver
Asked: 2019-07-25 20:05:45 +0800 CST

调试缓慢的缩略图进程

  • 3

我正在尝试在缩略图生成过程中调试一种特殊的性能行为eog,特别是gdk-pixbuf. 要重现的最小文件在这里:

https://github.com/nbeaver/gdk-pixbuf-bug

进程树如下所示:

systemd,1 splash
  `-plasmashell,4366
      `-konsole,6783
          `-bash,6793
              `-make,6949 reproduce
                  `-eog,6973 /usr/share/doc/docutils-doc/docs/user/images
                      `-bwrap,10071 --ro-bind /usr /usr --ro-bind /bin /bin --ro-bind /lib64 /lib64 --ro-bind /lib /lib --ro-bind /sbin /sbin --proc /proc --dev /dev --chdir / --setenv GIO_USE_VFS local --unshare-all --die-with-parent --bind /tmp/gnome-desktop-thumbnailer-2HUN5Z /tmp --ro-bind /usr/share/doc/docutils-doc/docs/user/images/s5-files.svg /tmp/gnome-desktop-file-to-thumbnail.svg --seccomp 11 /usr/bin/gdk-pixbuf-thumbnailer -s 128 file:///tmp/gnome-desktop-file-to-thumbnail.svg /tmp/gnome-desktop-thumbnailer.png
                          `-bwrap,10074 --ro-bind /usr /usr --ro-bind /bin /bin --ro-bind /lib64 /lib64 --ro-bind /lib /lib --ro-bind /sbin /sbin --proc /proc --dev /dev --chdir / --setenv GIO_USE_VFS local --unshare-all --die-with-parent --bind /tmp/gnome-desktop-thumbnailer-2HUN5Z /tmp --ro-bind /usr/share/doc/docutils-doc/docs/user/images/s5-files.svg /tmp/gnome-desktop-file-to-thumbnail.svg --seccomp 11 /usr/bin/gdk-pixbuf-thumbnailer -s 128 file:///tmp/gnome-desktop-file-to-thumbnail.svg /tmp/gnome-desktop-thumbnailer.png
                              `-gdk-pixbuf-thum,10075 -s 128 file:///tmp/gnome-desktop-file-to-thumbnail.svg /tmp/gnome-desktop-thumbnailer.png

从strace日志中,看起来/usr/bin/gdk-pixbuf-thumbnailer大约需要 30 秒查看字体文件:

22:44:05 munmap(0x7fd491988000, 20930832) = 0 <0.000558>
22:44:05 openat(AT_FDCWD, "/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc", O_RDONLY) = 5 <0.000060>
22:44:05 fcntl(5, F_SETFD, FD_CLOEXEC)  = 0 <0.000014>
22:44:05 fstat(5, {st_mode=S_IFREG|0644, st_size=20930832, ...}) = 0 <0.000013>
22:44:05 mmap(NULL, 20930832, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fd491988000 <0.000021>
22:44:05 close(5)                       = 0 <0.000011>
22:44:06 munmap(0x7fd491988000, 20930832) = 0 <0.000525>
22:44:06 openat(AT_FDCWD, "/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc", O_RDONLY) = 5 <0.000076>
22:44:06 fcntl(5, F_SETFD, FD_CLOEXEC)  = 0 <0.000013>
22:44:06 fstat(5, {st_mode=S_IFREG|0644, st_size=20930832, ...}) = 0 <0.000012>
22:44:06 mmap(NULL, 20930832, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fd491988000 <0.000023>
22:44:06 close(5)                       = 0 <0.000013>
<snip>
22:44:31 stat("/usr/share/fonts/opentype/stix-word/STIXMath-Regular.otf", {st_mode=S_IFREG|0644, st_size=476872, ...}) = 0 <0.000024>
22:44:31 openat(AT_FDCWD, "/usr/share/fonts/opentype/stix-word/STIXMath-Regular.otf", O_RDONLY) = 5 <0.000026>
22:44:31 fcntl(5, F_SETFD, FD_CLOEXEC)  = 0 <0.000014>
22:44:31 fstat(5, {st_mode=S_IFREG|0644, st_size=476872, ...}) = 0 <0.000013>
22:44:31 mmap(NULL, 476872, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fd49c26a000 <0.000023>
22:44:31 close(5)                       = 0 <0.000015>

有一个特定的 SVG 会触发此行为。但是,仅在 SVG 上运行eog 或运行是不够的。gdk-pixbuf-thumbnailer此行为仅在以下情况下发生:

  • 在目录上运行eog;

  • 目录中有一个特定的 SVG,但~/.cache/thumbnails/.

    (我touch用来更新 SVG 的时间戳并让缩略图每次都再次运行。)

  • 在同一目录中至少有一个其他图像;

  • 另一个图像的文件名在 SVG 文件名之前进行整理。

    (如果文件名在 SVG 文件名之后排序,它会在不到一秒的时间内生成缩略图。否则大约需要 30 秒。)

还有一些其他的谜题。在strace日志中,挂钟时间似乎与系统调用所花费的时间不匹配。我已经在旗帜eog下奔跑:strace-f

-f

由于 fork(2)、vfork(2) 和 clone(2) 系统调用由当前跟踪的进程创建,因此跟踪子进程。

我也尝试过这个-ff标志:

-ff

如果该-o filename选项有效,则每个进程跟踪都将写入每个进程 的数字进程 IDfilename.pid所在的位置。pid

但在任何一种情况下 gdk-pixbuf-thumbnailer都不会出现在子进程的日志文件中。

我也无法运行(gdb关于gdk-pixbuf-thumbnailer “目标和调试器位于不同的 PID 命名空间”),所以我不知道它卡在哪里了。

$ sudo gdb -p 20789
[sudo] password for nathaniel:
<snip>
Error while mapping shared library sections:
Could not open `target:/lib/x86_64-linux-gnu/libbsd.so.0' as an executable file: No such file or directory

warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.

warning: Target and debugger are in different PID namespaces; thread lists and other data are likely unreliable.  Connect to gdbserver inside the container.
(gdb) quit
Detaching from program: target:/newroot/usr/bin/gdk-pixbuf-thumbnailer, process 20789

我猜这与bwrap容器有关。

版本信息:

$ apt-cache policy libgdk-pixbuf2.0-bin eog
libgdk-pixbuf2.0-bin:
  Installed: 2.36.11-2
  Candidate: 2.36.11-2
  Version table:
 *** 2.36.11-2 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
eog:
  Installed: 3.28.1-1
  Candidate: 3.28.1-1
  Version table:
 *** 3.28.1-1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

我的问题是:

  • 这个错误可以在其他机器和其他版本上重现吗?

    (我碰巧使用的是 Ubuntu 18.04,但我想知道这是否发生在其他发行版上。)

  • 为什么不 作为子进程strace -f拾取?/usr/bin/gdk-pixbuf-thumbnailereog

    是否eog使用不寻常的方法来创建子进程?

  • 如何使用gdb附加到 /usr/bin/gdk-pixbuf-thumbnailer流程并查看它花费时间的功能?

  • 什么可能导致这种行为?

fonts strace
  • 1 个回答
  • 639 Views
Martin Hope
humanityANDpeace
Asked: 2019-06-06 07:57:09 +0800 CST

为什么 ldconfig 会从 libext2fs.so.2 创建到 libselinux.so.1 的符号链接?

  • 0

使用strace我发现了ldconfig(glibc)的行为,我无法理解

lstat("/usr/lib/libext2fs.so.2", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
unlink("/usr/lib/libext2fs.so.2")       = 0
symlink("libselinux.so.1", "/usr/lib/libext2fs.so.2") = 0

是否需要让ext2fs( libext2fs.so.2)的共享对象库成为libselinux.so.1.

ldconfig 如何知道该做什么?/usr/bin/ldconfig对我来说,这个静态二进制文件会有这样的硬编码行为似乎不合逻辑,对吧。然而,它的配置文件/etc/ld.so.conf并不能帮助我解开这个谜团。

是什么让我的发行版工具(Arch Linux)让这一切更加令人困惑/可疑,我找不到该文件所属的任何包。

$ pkgfile /usr/lib/libselinux.so.1

不显示任何包,而 $ pkgfile /usr/lib/libext2fs.so

输出core/e2fsprogs

所以我的问题是:

  1. 这个libselinux.so.1的作用在这里
  2. ldconfig 如何决定创建该符号链接(顺便说一句。中断e2fsck)
audit strace
  • 1 个回答
  • 1135 Views
Martin Hope
Golar Ramblar
Asked: 2019-05-05 14:28:39 +0800 CST

如何追踪突然出现程序未终止的原因,而使用`strace`它会终止?

  • 1

我有一个程序突然开始不终止(我没有更新程序,但是我的系统和内核,我不记得是什么导致了这种影响。重新编译程序并没有改变非终止行为)。但是,在 下strace,它确实终止。

这样的事情怎么能查到呢?

具体例子:

这是我遇到这个(对我来说)奇怪的事情的具体例子:

它是关于WWWOFFLE,SVN 修订版2250(在调查/撰写时最新),根据AUR-package在 Arch/Artix Linux 上编译。

一段时间以来(没有更新 WWWOFFLE,但更新了系统和内核,并且在出现此问题后重新编译 WWWOFFLE 没有明显变化)将 wwwoffle 置于在线或离线模式经常无限期地挂起。如果我想用 追踪它 strace,它不会挂起。如果我将它包装在一个 shell 脚本中,它会挂起strace,但不会挂起strace -f/ strace -ff。

细节:

  1. 启动wwwoffled服务器:

    wwwoffled -c /etc/wwwoffle/wwwoffle.conf -f -d 6
    
  2. 将 WWWOFFLE 置于在线模式(从离线模式切换到在线模式通常会成功):

    wwwoffle -c /etc/wwwoffle/wwwoffle.conf -online
    

    终端输出:

    WWWOFFLE Now Online
    

    并返回调用shell。

  3. 将 WWWOFFLE 置于离线模式:

    wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline
    

    终端输出:

    WWWOFFLE Now Offline
    

    并且没有终止。

    根据数字 1的日志wwwoffled正确地说Important: WWWOFFLE Offline。中止wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline并<STRG>+<c>再次尝试现在可以正确打印出来WWWOFFLE Already Offline,但也不会终止。

  4. 当 WWWOFFLE 已经在线时切换到在线模式也不会终止:

    wwwoffle -c /etc/wwwoffle/wwwoffle.conf -online
    

    而 WWWOFFLE 已经在线确实可以正确打印出来

    WWWOFFLE Already Online
    

    但不会终止。

  5. strace:

    strace wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline
    

    和

    strace wwwoffle -c /etc/wwwoffle/wwwoffle.conf -online
    

    确实似乎总是在wwwoffled像 1 中那样启动时终止。

  6. 如果我将wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offlineandwwwoffle -c /etc/wwwoffle/wwwoffle.conf -online放入 bash 脚本中:

    #!/bin/bash
    
    wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline
    

    并执行它,然后它 strace也不会终止:

    strace ./wwwoffle-off.sh
    

    打印为最后一行

    [...]
    access("/usr/bin/wwwoffle", R_OK)       = 0
    rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
    clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f36a75e1e50) = 6426
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
    rt_sigaction(SIGINT, {sa_handler=0x5573f5295be0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f36a76898b0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f36a76898b0}, 8) = 0
    wait4(-1, WWWOFFLE Already Offline
    

    并永远在那里等待。(注意WWWOFFLE Already Offline是 的输出wwwoffle并写入stdout,最后输出 的strace,写入stderr,是wait4(-1,)

  7. 使用strace -for strace -ff(它也跟踪分叉的子线程),它再次终止。

我只在 WWWOFFLE 中看到它,但它可能不是 WWWOFFLE 问题。我不知道如何追踪它。如何追踪这些事情,什么可能导致这种行为?

strace hang
  • 1 个回答
  • 39 Views
Martin Hope
smolloy
Asked: 2018-12-28 07:04:36 +0800 CST

ld.so.cache 和 libc.so.6 为每个调用映射内存?

  • 7

玩strace,在我看来,ld.so.cache几乎libc.so.6每个进程都打开并映射到内存。至少我尝试过的那些过程。这不是意味着这些进程被多次映射到进程内存中吗?

当然,这些文件非常小,但是这不是有点浪费内存吗?

strace 输出显示这些正在使用MAP_PRIVATEset 进行映射,这使其成为写时复制,但似乎每个进程都有一个新映射。

我的问题:

  1. 我是否正确理解正在发生的事情?也就是说,是否真的有这些文件的新副本映射到每个需要它们的进程(似乎是每个进程)的内存中?
  2. 是否正在进行某种类型的内存共享?也就是说,由于映射是写时复制,是否有很多进程在查看相同的物理内存位置?
strace glibc
  • 1 个回答
  • 756 Views
Martin Hope
Tim
Asked: 2018-11-30 07:27:36 +0800 CST

带-D和不带-D的strace中tracer、tracee和calling进程有什么关系?

  • 0

我很难理解 strace 的 -D 选项。strace 联机帮助页说

-D 将跟踪进程作为分离的孙进程运行,而不是作为被跟踪进程的父进程。这通过将被跟踪者保持为调用进程的直接子进程来减少 strace 的可见效果。

“跟踪进程”是运行strace的进程吗?

“调用进程”是“跟踪进程”的父进程吗?

不带-D和带-D的tracer、tracee和calling进程的父子关系是什么?

谢谢!

strace
  • 1 个回答
  • 79 Views
Martin Hope
Drew
Asked: 2018-11-27 21:55:11 +0800 CST

运行程序并拦截和重定向系统调用

  • 1

我想运行一个程序,当该程序尝试读取特定文件时,我希望它读取我选择的不同文件。

具体来说,该程序试图读取配置文件,并且设计不佳并且不允许用户指定配置文件的位置。我也无权在程序尝试读取的位置编辑文件。

我知道可以使用检测程序发出的系统调用strace,并且我可以open()通过在 下运行程序来查看程序发出的唯一系统调用strace。有什么方法可以拦截该系统调用并更改它的行为以打开我选择的不同文件?

linux strace
  • 1 个回答
  • 875 Views
Martin Hope
MaverickD
Asked: 2018-10-12 19:21:59 +0800 CST

为什么我在压力命令上运行 strace 时看不到 malloc 和 free systemcall

  • 1

--vm指挥旗stress说,

-m, --vm N spawn N 个在 malloc()/free() 上旋转的工人

我想看看它实际上在做什么,所以我运行了这个命令,

strace stress --vm 1

我得到以下输出,

execve("/bin/stress", ["stress", "--vm", "1"], [/* 27 vars */]) = 0
brk(NULL)                               = 0x55f05bef2000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fce9f15a000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=40388, ...}) = 0
mmap(NULL, 40388, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fce9f150000
close(3)                                = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pS\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1139680, ...}) = 0
mmap(NULL, 3150136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fce9ec38000
mprotect(0x7fce9ed39000, 2093056, PROT_NONE) = 0
mmap(0x7fce9ef38000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7fce9ef38000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P%\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2173512, ...}) = 0
mmap(NULL, 3981792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fce9e86b000
mprotect(0x7fce9ea2e000, 2093056, PROT_NONE) = 0
mmap(0x7fce9ec2d000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c2000) = 0x7fce9ec2d000
mmap(0x7fce9ec33000, 16864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fce9ec33000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fce9f14f000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fce9f14d000
arch_prctl(ARCH_SET_FS, 0x7fce9f14d740) = 0
mprotect(0x7fce9ec2d000, 16384, PROT_READ) = 0
mprotect(0x7fce9ef38000, 4096, PROT_READ) = 0
mprotect(0x55f05abdb000, 4096, PROT_READ) = 0
mprotect(0x7fce9f15b000, 4096, PROT_READ) = 0
munmap(0x7fce9f150000, 40388)           = 0
getpid()                                = 5305
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fce9f159000
write(1, "stress: info: [5305] dispatching"..., 64stress: info: [5305] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
) = 64
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fce9f14da10) = 5306
wait4(-1

输出只是停留在这里,我也没有看到任何malloc()调用。我怎样才能看到它进行malloc()和系统free()调用?

strace
  • 1 个回答
  • 1581 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve