[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