diff options
| author | Jan Altenberg <jan@jan-laptop.(none)> | 2010-04-30 11:17:26 +0200 |
|---|---|---|
| committer | Jan Altenberg <jan@jan-laptop.(none)> | 2010-04-30 11:17:26 +0200 |
| commit | 4d0408c9ab9d4ac824cae18581c546de247e9acb (patch) | |
| tree | d891f0a42084c9d75ca72cb6e43cdf1f35462603 | |
| parent | 1a4644f6b3a01c68d985cfb6d36c49cea3973845 (diff) | |
More app debugging handout fixes.
| -rw-r--r-- | application-devel/app-debugging/handout_app-debugging_de.tex | 9 |
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 |
