From 4d0408c9ab9d4ac824cae18581c546de247e9acb Mon Sep 17 00:00:00 2001 From: Jan Altenberg Date: Fri, 30 Apr 2010 11:17:26 +0200 Subject: More app debugging handout fixes. --- application-devel/app-debugging/handout_app-debugging_de.tex | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'application-devel/app-debugging/handout_app-debugging_de.tex') 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 @@ -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 -- cgit v1.2.3