<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Der Debuger zeigt den Quellcode an wie geht das?]]></title><description><![CDATA[<p>Ich bin hier ja schon seit einiger Zeit registriert hab mich aber noch nicht wirklich oft gemeldet. Ich habe einfach zufiele Fragen, um sie in ein Forum schreiben zu können. Eigentlich bin ich noch Anfänger deswegen begreife ich nicht so fiel. Unteranderem auch nicht wie es sein kann, dass ich mit gdb ein Maschinensprachenprogramm debugge und gdb mir den Quelltext anzeigen kann. Wird hierbei im Programm ein Pfad integriert, der zum Quelltext zeigt, und der vom Debugger gelesen werden kann, oder kann der Debugger zurück übersetzen, nur dachte ich, dass das in C++ nicht möglich wäre. Ich dachte das man Maschinenprogramme nur zurück in Assembler übersetzen kann, oder auch nicht. Oft ist die Rede davon, dass es nicht möglich wäre Maschinenprogramme nochmal sinnvoll zu verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280036/der-debuger-zeigt-den-quellcode-an-wie-geht-das</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 07:09:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280036.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Jan 2011 00:12:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 00:18:38 GMT]]></title><description><![CDATA[<p>Ich bin hier ja schon seit einiger Zeit registriert hab mich aber noch nicht wirklich oft gemeldet. Ich habe einfach zufiele Fragen, um sie in ein Forum schreiben zu können. Eigentlich bin ich noch Anfänger deswegen begreife ich nicht so fiel. Unteranderem auch nicht wie es sein kann, dass ich mit gdb ein Maschinensprachenprogramm debugge und gdb mir den Quelltext anzeigen kann. Wird hierbei im Programm ein Pfad integriert, der zum Quelltext zeigt, und der vom Debugger gelesen werden kann, oder kann der Debugger zurück übersetzen, nur dachte ich, dass das in C++ nicht möglich wäre. Ich dachte das man Maschinenprogramme nur zurück in Assembler übersetzen kann, oder auch nicht. Oft ist die Rede davon, dass es nicht möglich wäre Maschinenprogramme nochmal sinnvoll zu verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004011</guid><dc:creator><![CDATA[BigGreenFoot]]></dc:creator><pubDate>Sat, 08 Jan 2011 00:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 00:27:00 GMT]]></title><description><![CDATA[<p>Ich verstehe dich nicht. Der C++ Compiler übersetzt dir dein geschriebenes Programm in Maschinencode. Ein zurück gibt es nicht. Mit dem Debugger kannst du verfolgen wo sich dein Programm in deinem C++ Code bei Ausführung befindet und somit Fehler finden und korrigieren.</p>
<p>Du kannst auch alle Fragen hier posten lol <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004014</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Sat, 08 Jan 2011 00:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 00:39:10 GMT]]></title><description><![CDATA[<p>Natürlich die Aufgabe eines Debuggers ist mir bekannt. Unter Linux debuggd man ja mit gdb, ich nutze ddd ist nichts anderes wie gdb, mit einer grafischen Schnittstelle. ddd sowie gdb können Zeilen vom Quelltext anzeigen. Den Quelltext muss man beim debuggen aber nicht öffnen, sondern nur das Programm. Woher kennt dann gdb und ddd den Quelltext.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004015</guid><dc:creator><![CDATA[BigGreenFoot]]></dc:creator><pubDate>Sat, 08 Jan 2011 00:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 00:48:42 GMT]]></title><description><![CDATA[<p>Die Informationen werden als eine Art Kommentar in den Maschinencode eingefügt. Unter anderem auch ein Verweis auf die Quellcodedatei. Du kannst ja mal ein Testprogramm mit Debuginformationen erstellen und vor dem Debuggen den Quelltext löschen. Du wirst sehen, dass vieles im Debugger nun nicht mehr geht.</p>
<p>Wenn du beim GNU Compiler mit -S compilierst, dann kannst du die Debugsymbole auch im &quot;Klartext&quot; bewundern. Probier das mal mit verschiedenen Debugsymbolstufen (-ggdb3, -g, gar nix) aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004016</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 08 Jan 2011 00:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 00:56:32 GMT]]></title><description><![CDATA[<p>Ok trift das was HighLigerBiMBam sagt auch auf Assambler zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004017</guid><dc:creator><![CDATA[BigGreenFoot]]></dc:creator><pubDate>Sat, 08 Jan 2011 00:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 01:01:11 GMT]]></title><description><![CDATA[<p>... ich sollte schlafen gehen -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004018</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Sat, 08 Jan 2011 01:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 01:01:30 GMT]]></title><description><![CDATA[<p>Was meinst du genau?<br />
Maschinencode -&gt; Assembler ist (mit Verlusten) möglich.<br />
Assembler -&gt; Hochsprache geht nicht (bzw. der Code sieht danach ganz anders aus als vorher)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004019</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 08 Jan 2011 01:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 01:25:32 GMT]]></title><description><![CDATA[<p>Ok danke das is sogar mehr als ich wollte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004023</guid><dc:creator><![CDATA[BigGreenFoot]]></dc:creator><pubDate>Sat, 08 Jan 2011 01:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to Der Debuger zeigt den Quellcode an wie geht das? on Sat, 08 Jan 2011 01:47:08 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24825">@BigGreenFoot</a>:<br />
Ich weiss nur wie es unter Windows mit MSVC funktioniert, aber ich vermute es wird bei GCC/GDB nicht viel anders sein.</p>
<p>Wenn du das Programm compilierst, dann erzeugt der Compiler (direkt oder mit Umweg über einen Assembler) Maschinencode in sog. Object-Files. Die werden dann lustig zu ausführbaren Dateien zusammengelinkt.</p>
<p>Der Compiler fügt nun entweder direkt in die Object-Files, oder in spezielle Files die bei MSVC als &quot;Program Database&quot; bezeichnet werden Informationen ein, welche Stellen im Maschinencode aus welchen Stellen des Programms &quot;entstanden&quot; sind.<br />
Abgespeichert werden die Namen (meist vollständige Pfade) der Source-Files + Zeilennummern + Prüfsummen der Source-Files.</p>
<p>Der Linker sorgt dafür dass entweder die Informationen selbst, oder aber ein Verweis auf diese (Pfad wo auf der Platte das &quot;Program Database&quot; File steht) mit in der ausführbaren Datei landen.</p>
<p>Und GDB schliesslich guckt ob solche Informationen vorhanden sind, lädt sie, und verwendet sie um die Source-Files + die entsprechenden Stellen darin zum aktuell ausgeführten Code zu finden. Über die enthaltene Prüfsumme kann dann sogar noch geprüft werden, ob die Source-Files seit dem verändert wurden oder nicht.</p>
<p>Wenn du das Programm also selbst compiliert hast, dann funktioniert das.<br />
Wenn du das Programm fertig compiliert bekommen hast, dann funktioniert es (meisten) nicht, da (meistens) die nötigen &quot;Program Database&quot; Files + Source-Files nicht mit ausgeliefert werden.<br />
Und selbst wenn sie es werden, ist nicht gesagt dass GDB sie auch findet, da in der ausführbaren Datei ja nur der Pfad gespeichert ist wo diese Dateien ursprünglich generiert wurden, und das nicht unbedingt mit dem Pfad zusammenstimmen muss wo sie auf dem Ziel-System dann liegen.</p>
<p>Wobei es unter *NIX Systemen nicht unüblich ist eine mehr-oder-weniger fixe Verzeichnisstruktur zu haben, so dass es &quot;trotzdem&quot; klappen könnte.</p>
<p>Und natürlich ist es unter *NIX Systemen auch nicht ganz unüblich, dass Programme erst beim &quot;Installieren&quot; compiliert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004027</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 08 Jan 2011 01:47:08 GMT</pubDate></item></channel></rss>