Last edited 5 years ago

Strace

1. Article purpose[edit source]

This article provides the basic information needed to start using the Linux tool: strace[1].

2. Introduction[edit source]

The following table provides a brief description of the tool, as well as its availability depending on the software packages:

Yes: this tool is either present (ready to use or to be activated), or can be integrated and activated on the software package.

No: this tool is not present and cannot be integrated, or it is present but cannot be activated on the software package.

Tool STM32MPU Embedded Software distribution STM32MPU Embedded Softwaredistribution for Android™
Warning white.png Warning
The STM32MPU distribution for Android™ is not yet available in the v3 ecosystem releases: refer to the Strace page for the v2 ecosystem releases (in archived wiki).
Name Category Purpose Starter Package Developer Package Distribution Package Starter Package Developer Package Distribution Package
strace Tracing tools strace[1] is able to intercept and record the system calls which are called by a process and the signals which are received by another process. Yes Yes Yes Yes Yes Yes

3. Installing the trace and debug tool on your target board[edit source]

3.1. Using the STM32MPU Embedded Software distribution[edit source]

strace is installed by default and ready to be used with all STM32MPU Embedded Software Packages.

 which strace
/usr/bin/strace

strace is integrated in weston image distribution through meta-st package: meta-st/meta-st-openstlinux/recipes-st/packagegroups/packagegroup-framework-tools.bb.

RDEPENDS_packagegroup-framework-tools-kernel-base = "\
   can-utils       \
   i2c-tools       \
   strace          \
   usbutils        \
   \
   evtest          \
   memtester       \
   mtd-utils       \
   v4l-utils       \
   "

3.2. Using the STM32MPU Embedded Software distribution for Android™[edit source]

strace is installed by default (/system/bin/strace) and is ready to be used with all STM32MPU software packages for Android™.

 which strace
/system/bin/strace

It is integrated in Android image distribution through Android base makefile: build/make/target/product/base.mk:

# Packages included only for eng or userdebug builds, previously debug tagged
PRODUCT_PACKAGES_DEBUG := \
    logpersist.start \
    perfprofd \
    sqlite3 \
    strace

4. Getting started[edit source]

To use strace, two main methods:

  • by giving, as parameter, the name of program for which you want to list system calls, and its arguments if required:
 strace <Program> [Prog_Args]
  • by giving, as parameter, the PID of the process to be studied:
 strace -p <PID>

Some of useful command options:

-a <num> : alignment num COLUMN for printing syscall results
-r : print relative timestamp
-t : print absolute timestamp
-T : print time spent in each syscall

Other options can be set. For detail, please refer to manual page[2].

5. To go further[edit source]

5.1. Example[edit source]

As example, this is possible to get system call for a multimedia file playback with gst-play:

 strace -rT -a 100 gst-play-1.0 /usr/local/demo/media/ST2297_visionv3.webm
     0.000000 execve("/usr/bin/gst-play-1.0", ["gst-play-1.0", "[...]"...], 0xbeb10c00 /* 24 vars */) = 0 <0.001485>
     0.002800 brk(NULL)                                                                             = 0x28000 <0.000069>
     0.000717 uname({sysname="Linux", nodename="stm32mp1", ...})                                    = 0 <0.000069>
     0.000591 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)             = 0xb6fa2000 <0.000093>
     0.000673 access("/etc/ld.so.preload", R_OK)                                                    = -1 ENOENT (No such file or directory) <0.000109>
     0.000734 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC)                              = 3 <0.000115>
     0.000669 fstat64(3, {st_mode=S_IFREG|0644, st_size=24533, ...})                                = 0 <0.000069>
     0.000619 mmap2(NULL, 24533, PROT_READ, MAP_PRIVATE, 3, 0)                                      = 0xb6f9c000 <0.000091>
     0.000599 close(3)                                                                              = 0 <0.000065>
     0.000668 openat(AT_FDCWD, "/usr/lib/libgstpbutils-1.0.so.0", O_RDONLY|O_CLOEXEC)               = 3 <0.000114>
     0.000646 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300\234\0\0004\0\0\0"..., 512) = 512 <0.000083>
     0.000611 fstat64(3, {st_mode=S_IFREG|0755, st_size=195640, ...})                               = 0 <0.000080>
     0.000712 mmap2(NULL, 260004, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6f34000 <0.000088>
     0.000596 mprotect(0xb6f62000, 61440, PROT_NONE)                                                = 0 <0.000098>
     0.000609 mmap2(0xb6f71000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2d000) = 0xb6f71000 <0.000147>
     0.000811 close(3)                                                                              = 0 <0.000070>
     0.000706 openat(AT_FDCWD, "/usr/lib/libgstvideo-1.0.so.0", O_RDONLY|O_CLOEXEC)                 = 3 <0.000138>
     0.000754 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0P\317\0\0004\0\0\0"..., 512)   = 512 <0.000079>
     0.000612 fstat64(3, {st_mode=S_IFREG|0755, st_size=486440, ...})                               = 0 <0.000070>
     0.000618 mmap2(NULL, 552344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6ead000 <0.000087>
     0.000601 mprotect(0xb6f1c000, 61440, PROT_NONE)                                                = 0 <0.000092>
     0.000610 mmap2(0xb6f2b000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6e000) = 0xb6f2b000 <0.000132>
     0.000709 close(3)                                                                              = 0 <0.000067>
     0.000712 openat(AT_FDCWD, "/usr/lib/libgstaudio-1.0.so.0", O_RDONLY|O_CLOEXEC)                 = 3 <0.000121>
     0.000673 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\236\0\0004\0\0\0"..., 512)  = 512 <0.000078>
     0.000606 fstat64(3, {st_mode=S_IFREG|0755, st_size=375816, ...})                               = 0 <0.000067>
     0.000623 mmap2(NULL, 440684, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6e41000 <0.000150>
     0.000692 mprotect(0xb6e9b000, 61440, PROT_NONE)                                                = 0 <0.000096>
     0.000606 mmap2(0xb6eaa000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x59000) = 0xb6eaa000 <0.000130>
     0.000722 close(3)                                                                              = 0 <0.000071>
     0.000700 openat(AT_FDCWD, "/usr/lib/libgsttag-1.0.so.0", O_RDONLY|O_CLOEXEC)                   = 3 <0.000135>
     0.000755 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\370d\0\0004\0\0\0"..., 512)   = 512 <0.000080>
     0.000613 fstat64(3, {st_mode=S_IFREG|0755, st_size=215824, ...})                               = 0 <0.000068>
     0.000617 mmap2(NULL, 280136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6dfc000 <0.000087>
     0.000597 mprotect(0xb6e2f000, 65536, PROT_NONE)                                                = 0 <0.000090>
     0.000617 mmap2(0xb6e3f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x33000) = 0xb6e3f000 <0.000121>
     0.000702 close(3)                                                                              = 0 <0.000070>
     0.009092 openat(AT_FDCWD, "/usr/lib/libgstreamer-1.0.so.0", O_RDONLY|O_CLOEXEC)                = 3 <0.000146>
     0.010000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\270\371\1\0004\0\0\0"..., 512) = 512 <0.000088>
     0.010392 fstat64(3, {st_mode=S_IFREG|0755, st_size=1116268, ...})                              = 0 <0.000072>
     0.010210 mmap2(NULL, 1184392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)            = 0xb6cda000 <0.000107>
     0.010879 mprotect(0xb6de7000, 61440, PROT_NONE)                                                = 0 <0.000106>
     0.010048 mmap2(0xb6df6000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10c000) = 0xb6df6000 <0.000186>
     0.011926 mmap2(0xb6dfb000, 648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6dfb000 <0.000141>
     0.011239 close(3)                                                                              = 0 <0.000073>
     0.010260 openat(AT_FDCWD, "/usr/lib/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC)                  = 3 <0.000147>
     0.009916 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\250\212\0\0004\0\0\0"..., 512) = 512 <0.000095>
     0.010372 fstat64(3, {st_mode=S_IFREG|0755, st_size=294000, ...})                               = 0 <0.000075>
     0.010086 mmap2(NULL, 359636, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6c82000 <0.000102>
     0.010916 mprotect(0xb6cc9000, 61440, PROT_NONE)                                                = 0 <0.000103>
     0.010033 mmap2(0xb6cd8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x46000) = 0xb6cd8000 <0.000143>
     0.011876 close(3)                                                                              = 0 <0.000074>
     0.010153 openat(AT_FDCWD, "/usr/lib/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC)                     = 3 <0.000146>
     0.009983 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0XX\1\0004\0\0\0"..., 512)      = 512 <0.000088>
     0.010209 fstat64(3, {st_mode=S_IFREG|0755, st_size=990348, ...})                               = 0 <0.000075>
     0.010215 mmap2(NULL, 1056232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)            = 0xb6b80000 <0.000103>
     0.010881 mprotect(0xb6c71000, 61440, PROT_NONE)                                                = 0 <0.000100>
     0.010032 mmap2(0xb6c80000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf0000) = 0xb6c80000 <0.000150>
     0.011792 close(3)                                                                              = 0 <0.000073>
     0.010218 openat(AT_FDCWD, "/lib/libm.so.6", O_RDONLY|O_CLOEXEC)                                = 3 <0.000140>
     0.010000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\220E\0\0004\0\0\0"..., 512)   = 512 <0.000084>
     0.010212 fstat64(3, {st_mode=S_IFREG|0755, st_size=452028, ...})                               = 0 <0.000073>
     0.010207 mmap2(NULL, 516216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6b01000 <0.000101>
     0.010877 mprotect(0xb6b6f000, 61440, PROT_NONE)                                                = 0 <0.000110>
     0.010035 mmap2(0xb6b7e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0xb6b7e000 <0.000152>
     0.011806 close(3)                                                                              = 0 <0.000075>
     0.010130 openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC)                          = 3 <0.000134>
     0.010086 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214H\0\0004\0\0\0"..., 512)   = 512 <0.000085>
     0.010211 fstat64(3, {st_mode=S_IFREG|0755, st_size=92656, ...})                                = 0 <0.000074>
     0.010208 mmap2(NULL, 164424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6ad8000 <0.000100>
     0.010813 mprotect(0xb6aee000, 61440, PROT_NONE)                                                = 0 <0.000108>
     0.010205 mmap2(0xb6afd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xb6afd000 <0.000172>
     0.011742 mmap2(0xb6aff000, 4680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6aff000 <0.000137>
     0.011249 close(3)                                                                              = 0 <0.000072>
     0.010170 openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC)                                = 3 <0.000149>
     0.009988 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\34l\1\0004\0\0\0"..., 512)    = 512 <0.000088>
     0.010219 fstat64(3, {st_mode=S_IFREG|0755, st_size=1218336, ...})                              = 0 <0.000075>
     0.010198 mmap2(NULL, 1287556, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)            = 0xb699d000 <0.000105>
     0.010876 mprotect(0xb6ac3000, 61440, PROT_NONE)                                                = 0 <0.000132>
     0.010123 mmap2(0xb6ad2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x125000) = 0xb6ad2000 <0.000177>
     0.011925 mmap2(0xb6ad5000, 9604, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6ad5000 <0.000141>
     0.011252 close(3)                                                                              = 0 <0.000077>
     0.010267 openat(AT_FDCWD, "/usr/lib/liborc-0.4.so.0", O_RDONLY|O_CLOEXEC)                      = 3 <0.000150>
     0.009799 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0`u\0\0004\0\0\0"..., 512)      = 512 <0.000090>
     0.010386 fstat64(3, {st_mode=S_IFREG|0755, st_size=402508, ...})                               = 0 <0.000073>
     0.010032 mmap2(NULL, 466900, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb692b000 <0.000098>
     0.010893 mprotect(0xb698a000, 61440, PROT_NONE)                                                = 0 <0.000103>
     0.010193 mmap2(0xb6999000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5e000) = 0xb6999000 <0.000141>
     0.011890 close(3)                                                                              = 0 <0.000073>
     0.010150 openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC)                                = 3 <0.000149>
     0.009972 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300\32\0\0004\0\0\0"..., 512) = 512 <0.000090>
     0.010203 fstat64(3, {st_mode=S_IFREG|0755, st_size=79468, ...})                                = 0 <0.000074>
     0.010227 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)             = 0xb6f9a000 <0.000105>
     0.010939 mmap2(NULL, 143584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb6907000 <0.000098>
     0.010737 mprotect(0xb691a000, 61440, PROT_NONE)                                                = 0 <0.000104>
     0.010209 mmap2(0xb6929000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0xb6929000 <0.000152>
     0.011788 close(3)                                                                              = 0 <0.000075>
     0.010144 openat(AT_FDCWD, "/usr/lib/libgstbase-1.0.so.0", O_RDONLY|O_CLOEXEC)                  = 3 <0.000149>
     0.009981 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\244\0\0004\0\0\0"..., 512) = 512 <0.000083>
     0.010217 fstat64(3, {st_mode=S_IFREG|0755, st_size=375700, ...})                               = 0 <0.000073>
     0.010125 mmap2(NULL, 440032, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb689b000 <0.000104>
     0.010882 mprotect(0xb68f6000, 61440, PROT_NONE)                                                = 0 <0.000110>
     0.010198 mmap2(0xb6905000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5a000) = 0xb6905000 <0.000149>
     0.011807 close(3)                                                                              = 0 <0.000075>
     0.010290 openat(AT_FDCWD, "/usr/lib/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC)                  = 3 <0.000143>
     0.009822 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\230\f\0\0004\0\0\0"..., 512)  = 512 <0.000081>
     0.010205 fstat64(3, {st_mode=S_IFREG|0755, st_size=13764, ...})                                = 0 <0.000074>
     0.010219 mmap2(NULL, 78056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)              = 0xb6887000 <0.000099>
     0.010891 mprotect(0xb6889000, 65536, PROT_NONE)                                                = 0 <0.000106>
     0.010105 mmap2(0xb6899000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb6899000 <0.000229>
     0.011760 close(3)                                                                              = 0 <0.000076>
     0.009988 openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC)                               = 3 <0.000160>
     0.010017 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@\27\0\0004\0\0\0"..., 512)    = 512 <0.000092>
     0.010371 fstat64(3, {st_mode=S_IFREG|0755, st_size=26520, ...})                                = 0 <0.000076>
     0.010039 mmap2(NULL, 90640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)              = 0xb6870000 <0.000113>
     0.010881 mprotect(0xb6876000, 61440, PROT_NONE)                                                = 0 <0.000116>
     0.010223 mmap2(0xb6885000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xb6885000 <0.000169>
     0.011617 close(3)                                                                              = 0 <0.000073>
     0.010093 openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC)                               = 3 <0.000151>
     0.010016 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0l\t\0\0004\0\0\0"..., 512)     = 512 <0.000088>
     0.010390 fstat64(3, {st_mode=S_IFREG|0755, st_size=9688, ...})                                 = 0 <0.000075>
     0.010039 mmap2(NULL, 73916, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)              = 0xb685d000 <0.000123>
     0.010884 mprotect(0xb685f000, 61440, PROT_NONE)                                                = 0 <0.000108>
     0.010192 mmap2(0xb686e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb686e000 <0.000152>
     0.011636 close(3)                                                                              = 0 <0.000073>
     0.010119 openat(AT_FDCWD, "/usr/lib/libpcre.so.1", O_RDONLY|O_CLOEXEC)                         = 3 <0.000151>
     0.010004 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\10\16\0\0004\0\0\0"..., 512)  = 512 <0.000091>
     0.010378 fstat64(3, {st_mode=S_IFREG|0755, st_size=263672, ...})                               = 0 <0.000075>
     0.010090 mmap2(NULL, 327900, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb680c000 <0.000107>
     0.010920 mprotect(0xb684c000, 61440, PROT_NONE)                                                = 0 <0.000104>
     0.010024 mmap2(0xb685b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3f000) = 0xb685b000 <0.000146>
     0.011805 close(3)                                                                              = 0 <0.000074>
     0.010104 openat(AT_FDCWD, "/usr/lib/libffi.so.6", O_RDONLY|O_CLOEXEC)                          = 3 <0.000143>
     0.010024 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\\\23\0\0004\0\0\0"..., 512)   = 512 <0.000086>
     0.010382 fstat64(3, {st_mode=S_IFREG|0755, st_size=26232, ...})                                = 0 <0.000073>
     0.010051 mmap2(NULL, 90920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)              = 0xb67f5000 <0.000105>
     0.010872 mprotect(0xb67fb000, 61440, PROT_NONE)                                                = 0 <0.000102>
     0.010200 mmap2(0xb680a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xb680a000 <0.000148>
     0.011641 close(3)                                                                              = 0 <0.000075>
     0.010292 openat(AT_FDCWD, "/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC)                            = 3 <0.000137>
     0.009911 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340\320\0\0004\0\0\0"..., 512) = 512 <0.000086>
     0.010385 fstat64(3, {st_mode=S_IFREG|0644, st_size=116300, ...})                               = 0 <0.000074>
     0.010041 mmap2(NULL, 180524, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)             = 0xb67c8000 <0.000104>
     0.010880 mprotect(0xb67e4000, 61440, PROT_NONE)                                                = 0 <0.000118>
     0.010201 mmap2(0xb67f3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0xb67f3000 <0.000148>
     0.011796 close(3)                                                                              = 0 <0.000086>
     0.010379 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)             = 0xb6f98000 <0.000101>
     0.010683 set_tls(0xb6f98b20, 0xb6f99218, 0xb6fa5000, 0xb6f98b20, 0xb6fa5000)                   = 0 <0.000072>
     0.010361 mprotect(0xb6ad2000, 8192, PROT_READ)                                                 = 0 <0.000142>
     0.009734 mprotect(0xb67f3000, 4096, PROT_READ)                                                 = 0 <0.000106>
     0.010069 mprotect(0xb680a000, 4096, PROT_READ)                                                 = 0 <0.000097>
     0.010222 mprotect(0xb685b000, 4096, PROT_READ)                                                 = 0 <0.000093>
     0.010220 mprotect(0xb686e000, 4096, PROT_READ)                                                 = 0 <0.000103>
     0.010384 mprotect(0xb6afd000, 4096, PROT_READ)                                                 = 0 <0.000112>
     0.010054 mprotect(0xb6885000, 4096, PROT_READ)                                                 = 0 <0.000103>
     0.009813 mprotect(0xb6c80000, 4096, PROT_READ)                                                 = 0 <0.000100>
     0.010081 mprotect(0xb6899000, 4096, PROT_READ)                                                 = 0 <0.000098>
     0.010369 mprotect(0xb6cd8000, 4096, PROT_READ)                                                 = 0 <0.000126>
     0.009958 mprotect(0xb6b7e000, 4096, PROT_READ)                                                 = 0 <0.000106>
     0.010580 mprotect(0xb6df6000, 12288, PROT_READ)                                                = 0 <0.000124>
     0.009648 mprotect(0xb6905000, 4096, PROT_READ)                                                 = 0 <0.000105>
     0.010043 mprotect(0xb6929000, 4096, PROT_READ)                                                 = 0 <0.000104>
     0.010156 mprotect(0xb6999000, 4096, PROT_READ)                                                 = 0 <0.000107>
     0.010271 mprotect(0xb6e3f000, 4096, PROT_READ)                                                 = 0 <0.000105>
     0.010043 mprotect(0xb6eaa000, 8192, PROT_READ)                                                 = 0 <0.000106>
     0.010246 mprotect(0xb6f2b000, 32768, PROT_READ)                                                = 0 <0.000132>
     0.010042 mprotect(0xb6f71000, 8192, PROT_READ)                                                 = 0 <0.000108>
     0.009957 mprotect(0x26000, 4096, PROT_READ)                                                    = 0 <0.000105>
     0.010137 mprotect(0xb6fa4000, 4096, PROT_READ)                                                 = 0 <0.000107>
     0.010023 munmap(0xb6f9c000, 24533)                                                             = 0 <0.000165>
     0.010125 set_tid_address(0xb6f986c8)                                                           = 865 <0.000069>
     0.010190 set_robust_list(0xb6f986d0, 12)                                                       = 0 <0.000066>
     0.010395 rt_sigaction(SIGRTMIN, {sa_handler=0xb6adc24c, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0xb69c8a60}, NULL, 8) = 0 <0.000084>
     0.013419 rt_sigaction(SIGRT_1, {sa_handler=0xb6adc308, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0xb69c8a60}, NULL, 8) = 0 <0.000074>
     0.014382 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8)                                    = 0 <0.000067>
     0.010288 ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY})                = 0 <0.000071>
     0.011172 brk(NULL)                                                                             = 0x28000 <0.000079>
     0.009511 brk(0x49000)                                                                          = 0x49000 <0.000099>
     0.012309 futex(0xb6c81cac, FUTEX_WAKE_PRIVATE, 2147483647)                                     = 0 <0.000087>
     0.008552 futex(0xb6c81cac, FUTEX_WAKE_PRIVATE, 2147483647)                                     = 0 <0.000075>
     0.011329 uname({sysname="Linux", nodename="stm32mp1", ...})                                    = 0 <0.000079>
     0.009512 futex(0xb6c81cac, FUTEX_WAKE_PRIVATE, 2147483647)                                     = 0 <0.000084>
     0.009496 futex(0xb6c81cac, FUTEX_WAKE_PRIVATE, 2147483647)                                     = 0 <0.000076>
     0.010059 futex(0xb6c81cac, FUTEX_WAKE_PRIVATE, 2147483647)                                     = 0 <0.000090>
...
     0.000866 poll([{fd=0, events=POLLIN}, {fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 3, 95)    = 0 (Timeout) <0.103064>
     0.103921 getpid()                                                                              = 865 <0.000090>
     0.001614 getpid()                                                                              = 865 <0.000104>
     0.001243 futex(0xb50715f0, FUTEX_WAKE_PRIVATE, 1)                                              = 1 <0.000108>
)                                        = 29 <0.000213> 290:00:01.7 / 0:00:04.0       
     0.000921 poll([{fd=0, events=POLLIN}, {fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 3, 94)    = 0 (Timeout) <0.102831>
     0.103744 getpid()                                                                              = 865 <0.000117>
     0.000806 futex(0xb50715f0, FUTEX_WAKE_PRIVATE, 1)                                              = 1 <0.000129>
     0.000953 getpid()                                                                              = 865 <0.000101>
)                                        = 29 <0.000230> 290:00:01.8 / 0:00:04.0       
     0.000919 poll([{fd=0, events=POLLIN}, {fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 3, 94)    = 0 (Timeout) <0.103294>
     0.104092 getpid()                                                                              = 865 <0.000085>
     0.000768 getpid()                                                                              = 865 <0.000076>
)                                   )    = ? ERESTART_RESTARTBLOCK (Interrupted by signal) <0.028771>
strace: Process 865 detached

6. References[edit source]


  • Useful external links
Document link Document Type Description
strace linux.die.net Standard linux.die.net
strace wikipedia.org Standard wikipedia.org
How to use strace User Guide go4expert.com
strace examples Training thegeekstuff.com