<?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[Verständnisfrage+Debuggen+Speicherugriffsfehler]]></title><description><![CDATA[<p>Hi,<br />
Ich habe eine Verständnisfrage.<br />
Mein Kompiler hat mir einen Speicherzugriffsfehler zurückgemeldet.<br />
Er war in der Form:</p>
<pre><code class="language-cpp">char a[10];
//a initialisiren
char a_ptr=a;
a_ptr+=11;
//Zugriff auf a_ptr
</code></pre>
<p>Um ihn zu finden bin ich mit meinem Debugger durchgegangen.<br />
Er meldete mir den Speicherzugrifsfeherl bereits mehrere Zeilen bevor er überhaupt aufgetreten ist.<br />
Woran liegt das??<br />
Ist das Kompiler/Debugger abhängig, oder von der Prozessorarchitektur (Fetch/Decode/Execute) (Soweit mir bekannt darf der Prozessor bestimmte Befehle umstellen, wenn sie in einer anderen Reihenfolge ausgeführt schneller abarbeitbar, und bezüglich des Ergebnisses äquivalent sind) ??</p>
<p>Mein CLAGS:-Wall -ansi -O0 -march=athlon-xp -g -DVERSION=\&quot;$(VERSION)\&quot;<br />
VERSION =4.3<br />
CC =/usr/bin/g++</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249275/verständnisfrage-debuggen-speicherugriffsfehler</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 14:29:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249275.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Sep 2009 10:46:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 10:46:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich habe eine Verständnisfrage.<br />
Mein Kompiler hat mir einen Speicherzugriffsfehler zurückgemeldet.<br />
Er war in der Form:</p>
<pre><code class="language-cpp">char a[10];
//a initialisiren
char a_ptr=a;
a_ptr+=11;
//Zugriff auf a_ptr
</code></pre>
<p>Um ihn zu finden bin ich mit meinem Debugger durchgegangen.<br />
Er meldete mir den Speicherzugrifsfeherl bereits mehrere Zeilen bevor er überhaupt aufgetreten ist.<br />
Woran liegt das??<br />
Ist das Kompiler/Debugger abhängig, oder von der Prozessorarchitektur (Fetch/Decode/Execute) (Soweit mir bekannt darf der Prozessor bestimmte Befehle umstellen, wenn sie in einer anderen Reihenfolge ausgeführt schneller abarbeitbar, und bezüglich des Ergebnisses äquivalent sind) ??</p>
<p>Mein CLAGS:-Wall -ansi -O0 -march=athlon-xp -g -DVERSION=\&quot;$(VERSION)\&quot;<br />
VERSION =4.3<br />
CC =/usr/bin/g++</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772621</guid><dc:creator><![CDATA[AlexXXx]]></dc:creator><pubDate>Sat, 05 Sep 2009 10:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 11:27:42 GMT]]></title><description><![CDATA[<blockquote>
<p>Er meldete mir den Speicherzugrifsfeherl bereits mehrere Zeilen bevor er überhaupt aufgetreten ist.<br />
Woran liegt das??</p>
</blockquote>
<p>Undefiniertes Verhalten kann solches Zeugs verursachen.</p>
<p>Hatte ich auch schon ( VC++ ), als mir ein Fehler an einer völlig anderer Stelle angezeit wurde, als er dann wirklich war. (War Zugriff auf nicht definierten Speicher, also ganz was ähnliches, wie bei dir).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772641</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 05 Sep 2009 11:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 12:56:42 GMT]]></title><description><![CDATA[<p>Es kann sein, dass durch Optimierungen mehrere Anweisungen zusammengefasst werden. Eventuell wird der Zugriffsfehler dann schon bei der ersten Anweisung angezeigt, obwohl diese ihn gar nicht auslöst. So würde ich es jedenfalls erklären, aber sicher bin ich mir nicht.</p>
<p>AlexXXx, kannst du mal ein repräsentatives komplettes Codestück zeigen, das dieses Verhalten aufweist?</p>
<p>Debuggst du etwa im Release-Modus (bei MSVC++ geht das jedenfalls)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772724</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 05 Sep 2009 12:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 13:51:20 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Debuggst du etwa im Release-Modus (bei MSVC++ geht das jedenfalls)?</p>
</blockquote>
<p>Aber nur beschränkt..</p>
<p>Es müssen aber nicht einmal von Optimierungen her rühren, sondern eben einfach alleine durch das, dass das folgende nicht Definiert ist den Fehler an einer völlig anderer Stelle bringen. (Auch wenn der Fehler völlig korrekt das Problem beschreibt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772762</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 05 Sep 2009 13:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 14:04:18 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Aber nur beschränkt..</p>
</blockquote>
<p>Ja, aber gerade dort ist es bei mir auch schon vorgekommen, dass ich überhaupt nicht nachvollziehbares Verhalten erzielt habe. Deshalb mein Hinweis.</p>
<p>drakon schrieb:</p>
<blockquote>
<p>Es müssen aber nicht einmal von Optimierungen her rühren, sondern eben einfach alleine durch das, dass das folgende nicht Definiert ist den Fehler an einer völlig anderer Stelle bringen. (Auch wenn der Fehler völlig korrekt das Problem beschreibt).</p>
</blockquote>
<p>Nur weil eine Anweisung nicht definiert ist, müssen doch nicht <em>frühere</em> Anweisungen undefiniert sein? Zumindest scheint mir das sehr unlogisch, wenn da nicht der Compiler irgendwas zusammengefasst oder die Reihenfolge vertauscht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772768</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 05 Sep 2009 14:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage+Debuggen+Speicherugriffsfehler on Sat, 05 Sep 2009 14:07:30 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Es müssen aber nicht einmal von Optimierungen her rühren, sondern eben einfach alleine durch das, dass das folgende nicht Definiert ist den Fehler an einer völlig anderer Stelle bringen. (Auch wenn der Fehler völlig korrekt das Problem beschreibt).</p>
</blockquote>
<p>Nur weil eine Anweisung nicht definiert ist, müssen doch nicht <em>frühere</em> Anweisungen undefiniert sein? Zumindest scheint mir das sehr unlogisch, wenn da nicht der Compiler irgendwas zusammengefasst oder die Reihenfolge vertauscht hat.</p>
</blockquote>
<p>Habe ich auch nicht geglaubt, aber mir ist da im Debug Mode ein nicht erlaubter Zugriff gekommen an einer Stelle, wo gar nichts gemacht wird.. Darum habe ich da mal ein Weilchen debuggen müssen.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1772769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1772769</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 05 Sep 2009 14:07:30 GMT</pubDate></item></channel></rss>