<?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[[Debug] Tool gesucht: Welches ist am besten?]]></title><description><![CDATA[<p>Hallo,<br />
nachdem ich mir jetzt eine Stunde lang die Zähne an einem Buffer Overflow ausgebissen habe, überleg ich mir ob ich mir noch zusätzliche Debug-Tools besorgen sollte, die sowas besser erkennen:</p>
<pre><code class="language-cpp">Header::~Header()
{
    int i;
    for(i=0;i&lt;HEADER_COUNT_INFOS;i++)
    {
		 if(HeaderInfosSet[i])
		 {
                          delete [] (HeaderInfos[i]); //hier stürzt das Programm ab
			  HeaderInfos[i]=NULL;
			  HeaderInfosSet[i]=false;
		 }
    } 
}

//der Fehler lag hier
void Header::SetHeaderInfo(int info,const char* info_data)
{
    _ASSERT(info&gt;=1 &amp;&amp; info &lt;=HEADER_COUNT_INFOS);

    HeaderInfosSet[info-1]=true;
    HeaderInfos[info-1]=new char[strlen(info_data+1)]; //verschreiben oh mann richtig: strlen(info_data)+1 
    strcpy(HeaderInfos[info-1],info_data); //und peng, wir schreiben über unseren reservierten Speicher hinaus
}
</code></pre>
<p>Visual Studio hat beim Schließen des Programms immer nur &quot;Detected memory leaks&quot; angezeigt. Gut da hab ich mir gedacht, irgendein delete [] vergessen. Rumdebuggt, nix gefunden, bis ich gemerkt hab, dass er mir immer im Destrucktor von Header abschmiert. Es sieht dann so aus, als wäre alles gut gelaufen (schließlich beendet das Programm sich gerade), ist es aber nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Na gut, irgendwie musste es am delete liegen, aber was war da falsch (die Klasse ist leider ein bisschen größer <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="😃"
    /> ). Und ich musste auch erst herausfinden, dass es ein Buffer Overflow war, Visual Studio sagte mir ja nur was von einem meory leak...<br />
Nach ner langen Zeit (ich hatte den delete Aufruf bis in die Debugbibliothek von VS zurückverfolgt), kam ich dann darauf, dass es wohl irgendwo ein Bufferoverflow war, da ich irgendwann an eine Stelle kam an der stand &quot;the memory around this adress was damaged&quot; und feststellte, das er an dieser Stelle immer abstürzt (Leider anscheinend bevor VS diese sehr hilfreiche Meldung ausspucken konnte <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="🙄"
    /> )<br />
Also suche ich jetzt nach einem Tool, das fähig wäre, den Fehler schon bei</p>
<pre><code class="language-cpp">HeaderInfos[info-1]=new char[strlen(info_data+1)];
strcpy(HeaderInfos[info-1],info_data); //und peng, wir schreiben über unseren reservierten Speicher hinaus
</code></pre>
<p>zu entdecken?<br />
Gibts da welche? Ich hab unter <a href="http://www.debuginfo.com/tips/userbpntdll.html" rel="nofollow">http://www.debuginfo.com/tips/userbpntdll.html</a> welche gefunden, aber sind die besser als der Debugger von VS <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158898/debug-tool-gesucht-welches-ist-am-besten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 20:43:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158898.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Sep 2006 19:46:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Debug] Tool gesucht: Welches ist am besten? on Sat, 09 Sep 2006 19:46:22 GMT]]></title><description><![CDATA[<p>Hallo,<br />
nachdem ich mir jetzt eine Stunde lang die Zähne an einem Buffer Overflow ausgebissen habe, überleg ich mir ob ich mir noch zusätzliche Debug-Tools besorgen sollte, die sowas besser erkennen:</p>
<pre><code class="language-cpp">Header::~Header()
{
    int i;
    for(i=0;i&lt;HEADER_COUNT_INFOS;i++)
    {
		 if(HeaderInfosSet[i])
		 {
                          delete [] (HeaderInfos[i]); //hier stürzt das Programm ab
			  HeaderInfos[i]=NULL;
			  HeaderInfosSet[i]=false;
		 }
    } 
}

//der Fehler lag hier
void Header::SetHeaderInfo(int info,const char* info_data)
{
    _ASSERT(info&gt;=1 &amp;&amp; info &lt;=HEADER_COUNT_INFOS);

    HeaderInfosSet[info-1]=true;
    HeaderInfos[info-1]=new char[strlen(info_data+1)]; //verschreiben oh mann richtig: strlen(info_data)+1 
    strcpy(HeaderInfos[info-1],info_data); //und peng, wir schreiben über unseren reservierten Speicher hinaus
}
</code></pre>
<p>Visual Studio hat beim Schließen des Programms immer nur &quot;Detected memory leaks&quot; angezeigt. Gut da hab ich mir gedacht, irgendein delete [] vergessen. Rumdebuggt, nix gefunden, bis ich gemerkt hab, dass er mir immer im Destrucktor von Header abschmiert. Es sieht dann so aus, als wäre alles gut gelaufen (schließlich beendet das Programm sich gerade), ist es aber nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Na gut, irgendwie musste es am delete liegen, aber was war da falsch (die Klasse ist leider ein bisschen größer <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="😃"
    /> ). Und ich musste auch erst herausfinden, dass es ein Buffer Overflow war, Visual Studio sagte mir ja nur was von einem meory leak...<br />
Nach ner langen Zeit (ich hatte den delete Aufruf bis in die Debugbibliothek von VS zurückverfolgt), kam ich dann darauf, dass es wohl irgendwo ein Bufferoverflow war, da ich irgendwann an eine Stelle kam an der stand &quot;the memory around this adress was damaged&quot; und feststellte, das er an dieser Stelle immer abstürzt (Leider anscheinend bevor VS diese sehr hilfreiche Meldung ausspucken konnte <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="🙄"
    /> )<br />
Also suche ich jetzt nach einem Tool, das fähig wäre, den Fehler schon bei</p>
<pre><code class="language-cpp">HeaderInfos[info-1]=new char[strlen(info_data+1)];
strcpy(HeaderInfos[info-1],info_data); //und peng, wir schreiben über unseren reservierten Speicher hinaus
</code></pre>
<p>zu entdecken?<br />
Gibts da welche? Ich hab unter <a href="http://www.debuginfo.com/tips/userbpntdll.html" rel="nofollow">http://www.debuginfo.com/tips/userbpntdll.html</a> welche gefunden, aber sind die besser als der Debugger von VS <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134387</guid><dc:creator><![CDATA[XCooperation]]></dc:creator><pubDate>Sat, 09 Sep 2006 19:46:22 GMT</pubDate></item></channel></rss>