[FE training-materials-updates] strace output: help to decrypt

Michael Opdenacker michael.opdenacker at free-electrons.com
Fri Mar 14 18:02:15 CET 2014


Repository : git://git.free-electrons.com/training-materials.git

On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=7c03576b2789e597679cc4de06efc9aec9c54e8e

>---------------------------------------------------------------

commit 7c03576b2789e597679cc4de06efc9aec9c54e8e
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Fri Mar 14 18:01:11 2014 +0100

    strace output: help to decrypt
    
    - Highlight the open file ids, and explain how to use them
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


>---------------------------------------------------------------

7c03576b2789e597679cc4de06efc9aec9c54e8e
 .../strace-output.svg                              |  200 ++++++++++++++++++++
 .../sysdev-application-development.tex             |   29 +--
 2 files changed, 203 insertions(+), 26 deletions(-)

diff --git a/slides/sysdev-application-development/strace-output.svg b/slides/sysdev-application-development/strace-output.svg
new file mode 100644
index 0000000..0f78526
--- /dev/null
+++ b/slides/sysdev-application-development/strace-output.svg
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="2258.2925"
+   height="1035.72"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="New document 1">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="1190.707"
+     inkscape:cy="788.34015"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0.5"
+     fit-margin-left="0.5"
+     fit-margin-right="0.5"
+     fit-margin-bottom="0.5"
+     inkscape:window-width="1635"
+     inkscape:window-height="911"
+     inkscape:window-x="0"
+     inkscape:window-y="56"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-88.071426,-290.69648)">
+    <rect
+       style="fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3909"
+       width="2337.1428"
+       height="1168.5714"
+       x="48.071426"
+       y="226.41644"
+       ry="57.142857" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="88.571426"
+       y="318.07648"
+       id="text2985"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2987"
+         x="88.571426"
+         y="318.07648"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">> strace cat Makefile</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="368.07648"
+         id="tspan2989"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">execve("/bin/cat", ["cat", "Makefile"], [/* 38 vars */]) = 0</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="418.07648"
+         id="tspan2991"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">brk(0) = 0x98b4000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="468.07648"
+         id="tspan2993"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="518.07648"
+         id="tspan2995"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f85000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="568.07648"
+         id="tspan2997"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="618.07648"
+         id="tspan2999"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">open("/etc/ld.so.cache", O_RDONLY) = <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3029">3</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="668.07648"
+         id="tspan3001"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">fstat64(<tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3799">3</tspan>, {st_mode=S_IFREG|0644, st_size=111585, ...}) = 0</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="718.07648"
+         id="tspan3003"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mmap2(NULL, 111585, PROT_READ, MAP_PRIVATE, <tspan
+   style="fill:#ff0000;fill-opacity:1;font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan3809">3</tspan>, 0) = 0xb7f69000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="768.07648"
+         id="tspan3005"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">close(<tspan
+   style="fill:#ff0000;fill-opacity:1;font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan3825">3</tspan>) = 0</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="818.07648"
+         id="tspan3007"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="868.07648"
+         id="tspan3009"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3837">3</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="918.07648"
+         id="tspan3011"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">read(<tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3839">3</tspan>, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320h\1\0004\0\0\0\344"..., 512) = 512</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="968.07648"
+         id="tspan3013"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">fstat64(<tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3849">3</tspan>, {st_mode=S_IFREG|0755, st_size=1442180, ...}) = 0</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1018.0765"
+         id="tspan3015"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mmap2(NULL, 1451632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, <tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3867">3</tspan>, 0) = 0xb7e06000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1068.0764"
+         id="tspan3017"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mprotect(0xb7f62000, 4096, PROT_NONE) = 0</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1118.0764"
+         id="tspan3019"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mmap2(0xb7f63000, 12288, PROT_READ|PROT_WRITE,</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1168.0764"
+         id="tspan3021"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">      MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, <tspan
+   style="fill:#ff0000;fill-opacity:1;font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold"
+   id="tspan3879">3</tspan>, 0x15c) = 0xb7f63000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1218.0764"
+         id="tspan3023"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">mmap2(0xb7f66000, 9840, PROT_READ|PROT_WRITE,</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1268.0764"
+         id="tspan3025"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">      MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f66000</tspan><tspan
+         sodipodi:role="line"
+         x="88.571426"
+         y="1318.0764"
+         id="tspan3027"
+         style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch">close(<tspan
+   style="font-weight:bold;-inkscape-font-specification:Courier 10 Pitch Bold;fill:#ff0000;fill-opacity:1"
+   id="tspan3895">3</tspan>) = 0</tspan></text>
+  </g>
+</svg>
diff --git a/slides/sysdev-application-development/sysdev-application-development.tex b/slides/sysdev-application-development/sysdev-application-development.tex
index d0b6aea..b2f40d8 100644
--- a/slides/sysdev-application-development/sysdev-application-development.tex
+++ b/slides/sysdev-application-development/sysdev-application-development.tex
@@ -577,32 +577,9 @@ clean:
 
 \begin{frame}[fragile]
   \frametitle{strace example output}
-  \tiny
-  \begin{block}{}
-\begin{verbatim}
-> strace cat Makefile
-execve("/bin/cat", ["cat", "Makefile"], [/* 38 vars */]) = 0
-brk(0) = 0x98b4000
-access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
-mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f85000
-access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
-open("/etc/ld.so.cache", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=111585, ...}) = 0
-mmap2(NULL, 111585, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f69000
-close(3) = 0
-access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
-open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
-read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320h\1\0004\0\0\0\344"..., 512) = 512
-fstat64(3, {st_mode=S_IFREG|0755, st_size=1442180, ...}) = 0
-mmap2(NULL, 1451632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e06000
-mprotect(0xb7f62000, 4096, PROT_NONE) = 0
-mmap2(0xb7f63000, 12288, PROT_READ|PROT_WRITE,
-      MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15c) = 0xb7f63000
-mmap2(0xb7f66000, 9840, PROT_READ|PROT_WRITE,
-      MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f66000
-close(3) = 0
-\end{verbatim}
-  \end{block}
+  \includegraphics[width=\textwidth]{slides/sysdev-application-development/strace-output.pdf}\\
+  Hint: follow the open file descriptors returned by \code{open()}. \\
+  This tells you what files system calls are run on.
 \end{frame}
 
 \begin{frame}



More information about the training-materials-updates mailing list