<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Debugging-Techniken_und_Tools_%28C_Programmiersprache%29</id>
	<title>Debugging-Techniken und Tools (C Programmiersprache) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Debugging-Techniken_und_Tools_%28C_Programmiersprache%29"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Debugging-Techniken_und_Tools_(C_Programmiersprache)&amp;action=history"/>
	<updated>2026-08-19T19:55:49Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Debugging-Techniken_und_Tools_(C_Programmiersprache)&amp;diff=2509&amp;oldid=prev</id>
		<title>Thorsten: // via Wikitext Extension for VSCode</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Debugging-Techniken_und_Tools_(C_Programmiersprache)&amp;diff=2509&amp;oldid=prev"/>
		<updated>2025-01-25T00:55:52Z</updated>

		<summary type="html">&lt;p&gt;// via Wikitext Extension for VSCode&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&lt;br /&gt;
&lt;br /&gt;
== Debugging-Techniken und Tools (C Programmiersprache) ==&lt;br /&gt;
&lt;br /&gt;
=== Einführung ===&lt;br /&gt;
Debugging ist der Prozess des Findens und Behebens von Fehlern in einem Programm. In der C-Programmiersprache gibt es verschiedene Techniken und Tools, die beim Debugging helfen können.&lt;br /&gt;
&lt;br /&gt;
=== Techniken ===&lt;br /&gt;
==== 1. Print-Debugging ====&lt;br /&gt;
Beim Print-Debugging werden printf()-Anweisungen im Code verwendet, um den Wert von Variablen und den Programmfluss zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Schritte:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Fügen Sie printf()-Anweisungen an den relevanten Stellen im Code hinzu.&lt;br /&gt;
# Kompilieren und führen Sie das Programm aus.&lt;br /&gt;
# Überprüfen Sie die Ausgabe auf Anomalien.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int x = 5;&lt;br /&gt;
    printf(&amp;quot;Der Wert von x ist: %d\n&amp;quot;, x);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== 2. Breakpoints ====&lt;br /&gt;
Breakpoints sind spezielle Punkte im Code, an denen das Programm angehalten wird, um den Zustand der Variablen und den Programmfluss zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Schritte:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Setzen Sie Breakpoints an den relevanten Stellen im Code.&lt;br /&gt;
# Starten Sie das Programm im Debug-Modus.&lt;br /&gt;
# Überprüfen Sie den Wert der Variablen und den Programmfluss an den Breakpoints.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int x = 5;&lt;br /&gt;
    int y = 10;&lt;br /&gt;
    int z = x + y;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== 3. Stack Tracing ====&lt;br /&gt;
Stack Tracing ist eine Technik, bei der der Aufrufstapel des Programms verfolgt wird, um den Programmfluss und die Funktionsaufrufe zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Schritte:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Fügen Sie Code hinzu, um den Aufrufstapel zu verfolgen.&lt;br /&gt;
# Kompilieren und führen Sie das Programm aus.&lt;br /&gt;
# Überprüfen Sie den Aufrufstapel, um den Programmfluss zu verstehen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void func1() {&lt;br /&gt;
    printf(&amp;quot;In func1\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void func2() {&lt;br /&gt;
    printf(&amp;quot;In func2\n&amp;quot;);&lt;br /&gt;
    func1();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    func2();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
==== 1. gdb ====&lt;br /&gt;
gdb ist ein leistungsstarkes Open-Source-Debugger-Tool für C-Programme. Es ermöglicht das Setzen von Breakpoints, das Verfolgen von Variablen und das Steuern des Programmflusses.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verwendung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gcc -g -o program program.c&lt;br /&gt;
$ gdb program&lt;br /&gt;
(gdb) break main&lt;br /&gt;
(gdb) run&lt;br /&gt;
(gdb) print x&lt;br /&gt;
(gdb) step&lt;br /&gt;
(gdb) quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Valgrind ====&lt;br /&gt;
Valgrind ist ein Werkzeug zum Auffinden von Speicherfehlern in C-Programmen. Es kann Speicherlecks, Speicherzugriffsfehler und andere Speicherprobleme erkennen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verwendung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ valgrind ./program&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. strace ====&lt;br /&gt;
strace ist ein Dienstprogramm zum Verfolgen von Systemaufrufen und Signalen, die von einem Prozess und seinen Kindprozessen ausgeführt werden. Es kann bei der Fehlersuche in der Systemaufrufebene helfen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verwendung:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ strace ./program&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fazit ===&lt;br /&gt;
Das Debugging von C-Programmen erfordert die Verwendung von Techniken und Tools, um effizient Fehler zu finden und zu beheben. Print-Debugging, Breakpoints, Stack Tracing und Tools wie gdb, Valgrind und strace sind wichtige Werkzeuge, die Entwicklern dabei helfen können, Bugs in ihren Programmen zu identifizieren und zu beheben.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&lt;/div&gt;</summary>
		<author><name>Thorsten</name></author>
	</entry>
</feed>