summaryrefslogtreecommitdiff
path: root/application-devel
diff options
context:
space:
mode:
authorJan Altenberg <jan@jan-laptop.(none)>2010-04-30 11:17:26 +0200
committerJan Altenberg <jan@jan-laptop.(none)>2010-04-30 11:17:26 +0200
commit4d0408c9ab9d4ac824cae18581c546de247e9acb (patch)
treed891f0a42084c9d75ca72cb6e43cdf1f35462603 /application-devel
parent1a4644f6b3a01c68d985cfb6d36c49cea3973845 (diff)
More app debugging handout fixes.
Diffstat (limited to 'application-devel')
-rw-r--r--application-devel/app-debugging/handout_app-debugging_de.tex9
1 files changed, 6 insertions, 3 deletions
diff --git a/application-devel/app-debugging/handout_app-debugging_de.tex b/application-devel/app-debugging/handout_app-debugging_de.tex
index c73cdd0..a7e1fac 100644
--- a/application-devel/app-debugging/handout_app-debugging_de.tex
+++ b/application-devel/app-debugging/handout_app-debugging_de.tex
@@ -26,7 +26,7 @@ fstat(3, {st_mode=S_IFREG|0644, st_size=110532, ...}) = 0
mmap(NULL, 110532, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f32457e3000
close(3) = 0
\end{lstlisting}
-Strace besitzt eine Vielzahl von Commandlineparametern. Die wichtigsten
+Strace besitzt eine Vielzahl von Commandline\-para\-metern. Die wichtigsten
davon sind:\\
\begin{center}
\begin{tabular}{|c|p{5cm}|}
@@ -165,7 +165,7 @@ können hier verwendet werden:
\hline
\end{tabular}
\end{center}
-Folgendes Beispiel verdeutlich die Analyse eines core-Files:
+Folgendes Beispiel verdeutlicht die Analyse eines core-Files:
\begin{lstlisting}[language=c]
/* segfault.c */
#include <stdio.h>
@@ -266,7 +266,7 @@ Address Size Caller
[...]
\end{lstlisting}
\subsection*{GLIBC: Hooks für malloc()}
-Neben mtrace() sieht die GLIBC noch Hooks for, um Callbacks einzuhängen,
+Neben mtrace() sieht die GLIBC noch Hooks vor, um Callbacks einzuhängen,
die bei jedem Aufruf von malloc(), realloc(), free() oder memalign()
aufgerufen werden. Hiermit steht eine sehr einfache Möglichkeit zur Verfügung,
dynamische Speicherverwaltung individuell zu überwachen.\\
@@ -291,6 +291,9 @@ void *function (void *ptr, const void *caller)
/* function prototype */
void *function (size_t size, size_t alignment, const void *caller)
\end{lstlisting}
+ACHTUNG: Bei der Verwendung von malloc() Hooks ist Vorsicht geboten! Jeglicher
+Aufruf, der seinerseits wiederrum einen malloc() Aufruf initiiert, führt
+innerhalb eines malloc() Hooks unvermeidlich zu einer Rekursion.
\subsection*{libDUMA}
Ein weiteres bekanntes Werkzeug zum Speicherdebugging ist eine Bibliothek
mit dem Namen DUMA. Hierbei handelt sich um einen Fork der bekannten