<?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[Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei)]]></title><description><![CDATA[<p>Ich hab heute wieder mal an mein Browser weiter gemacht.</p>
<p>Nur ich kriege und kriege ein Fehler nicht weg.</p>
<p>Das Programm hatt eine TCppwebbrowser Komponente.<br />
Und zur Laufzeit werden noch einige andere erzeugt.</p>
<p>Das Programm stürzt aber in unregelmässigen Abständen ab.</p>
<p>Debug-Ausgabe: HEAP[Project1.exe]: Prozess Project1.exe (3048)<br />
Debug-Ausgabe: HEAP: Free Heap block 2b8a000 modified at 2b8a020 after it was freed Prozess Project1.exe (3048)</p>
<p>Schmeisst der als Antwort aus.</p>
<p>Codeteile die wichtig sein könnten.</p>
<pre><code class="language-cpp">TCppWebBrowser *WebBrowser[10];
int xy=1,fenster=0;
//-----unwichtig
if(Sender!=Browser)
*Cancel = true;

else
{
WebBrowser[fenster] = new TCppWebBrowser(this);
//WebBrowser[fenster]-&gt;ParentWindow = Handle;
WebBrowser[fenster]-&gt;Left=1;
WebBrowser[fenster]-&gt;Top=ComboBox1-&gt;Top+ComboBox1-&gt;Height+3;
WebBrowser[fenster]-&gt;Width=(Form1-&gt;Width-10)/4;
WebBrowser[fenster]-&gt;Height=(Form1-&gt;Height-ComboBox1-&gt;Top-ComboBox1-&gt;Height-49)/4;
//WebBrowser[fenster]-&gt;Navigate(WideString(&quot;http://www.freenet.de&quot;));
*ppDisp=WebBrowser[fenster]-&gt;Application;
WebBrowser[fenster]-&gt;OnNewWindow2=BrowserNewWindow2;
WebBrowser[fenster]-&gt;Hide();
//Browser-&gt;Show();
fenster++;
}
//erstellt neue Komponenten und resized die
if(fenster-1&lt;2)
{xy++;
SetToForeground(Form1-&gt;Handle);
//unwichtig
HWND test2handle=GetForegroundWindow();
char banana[256];
GetWindowText(

    test2handle,	// handle of window or control with text
    banana,	// address of buffer for text
    255 	// maximum number of characters to copy
   );
   Label2-&gt;Caption=banana;
   }

if(fenster-1&gt;2 || fenster-1==2)
        {
        Timer3-&gt;Enabled=false;
        xy=0;
        closewindow-&gt;Enabled=true;
}
//maximal 3 weitere Komponenten erzeugen
closewindow-&gt;Enabled=false;
//alle instanzen killen
//MessageBox(Handle,&quot;alle geladen&quot;,&quot;alle geladen&quot;,MB_OK);
for (int bfenster=0;bfenster&lt;10;bfenster++)
{
        if(WebBrowser[bfenster]!=NULL)
        {
        delete WebBrowser[bfenster];
        }

        else
        {
        //evtl. noch was rein
        }
}
Timer1-&gt;Enabled=true;
fenster=0;
//Fenster wurde ne Zeitlang nicht genutzt und automatisch geschlossen
</code></pre>
<p>Und diesen 1 Fehler werde ich nicht los.</p>
<p>Meine Überlegung ist folgende, da der abundzu eine Fehlermeldung rausgab(JavaScript Problem Seite weiterhin ausführen etc.), das Programm aber die Komponente mit der obengenannte Methode versuchte zu killen. Das es evtl. dadran liegt.<br />
Aber wie ich solche JavaScript Fehlerfenster richtig behandel um so, den Fehler evt. zu beheben weiss ich nicht.</p>
<p>Hatt vielleicht einer so ein ähnliches Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165419/wie-kann-ich-den-fehler-beheben-programm-stürt-ab-debug-ausgabe-dabei</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 20:12:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165419.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Nov 2006 17:53:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Sun, 19 Nov 2006 17:53:48 GMT]]></title><description><![CDATA[<p>Ich hab heute wieder mal an mein Browser weiter gemacht.</p>
<p>Nur ich kriege und kriege ein Fehler nicht weg.</p>
<p>Das Programm hatt eine TCppwebbrowser Komponente.<br />
Und zur Laufzeit werden noch einige andere erzeugt.</p>
<p>Das Programm stürzt aber in unregelmässigen Abständen ab.</p>
<p>Debug-Ausgabe: HEAP[Project1.exe]: Prozess Project1.exe (3048)<br />
Debug-Ausgabe: HEAP: Free Heap block 2b8a000 modified at 2b8a020 after it was freed Prozess Project1.exe (3048)</p>
<p>Schmeisst der als Antwort aus.</p>
<p>Codeteile die wichtig sein könnten.</p>
<pre><code class="language-cpp">TCppWebBrowser *WebBrowser[10];
int xy=1,fenster=0;
//-----unwichtig
if(Sender!=Browser)
*Cancel = true;

else
{
WebBrowser[fenster] = new TCppWebBrowser(this);
//WebBrowser[fenster]-&gt;ParentWindow = Handle;
WebBrowser[fenster]-&gt;Left=1;
WebBrowser[fenster]-&gt;Top=ComboBox1-&gt;Top+ComboBox1-&gt;Height+3;
WebBrowser[fenster]-&gt;Width=(Form1-&gt;Width-10)/4;
WebBrowser[fenster]-&gt;Height=(Form1-&gt;Height-ComboBox1-&gt;Top-ComboBox1-&gt;Height-49)/4;
//WebBrowser[fenster]-&gt;Navigate(WideString(&quot;http://www.freenet.de&quot;));
*ppDisp=WebBrowser[fenster]-&gt;Application;
WebBrowser[fenster]-&gt;OnNewWindow2=BrowserNewWindow2;
WebBrowser[fenster]-&gt;Hide();
//Browser-&gt;Show();
fenster++;
}
//erstellt neue Komponenten und resized die
if(fenster-1&lt;2)
{xy++;
SetToForeground(Form1-&gt;Handle);
//unwichtig
HWND test2handle=GetForegroundWindow();
char banana[256];
GetWindowText(

    test2handle,	// handle of window or control with text
    banana,	// address of buffer for text
    255 	// maximum number of characters to copy
   );
   Label2-&gt;Caption=banana;
   }

if(fenster-1&gt;2 || fenster-1==2)
        {
        Timer3-&gt;Enabled=false;
        xy=0;
        closewindow-&gt;Enabled=true;
}
//maximal 3 weitere Komponenten erzeugen
closewindow-&gt;Enabled=false;
//alle instanzen killen
//MessageBox(Handle,&quot;alle geladen&quot;,&quot;alle geladen&quot;,MB_OK);
for (int bfenster=0;bfenster&lt;10;bfenster++)
{
        if(WebBrowser[bfenster]!=NULL)
        {
        delete WebBrowser[bfenster];
        }

        else
        {
        //evtl. noch was rein
        }
}
Timer1-&gt;Enabled=true;
fenster=0;
//Fenster wurde ne Zeitlang nicht genutzt und automatisch geschlossen
</code></pre>
<p>Und diesen 1 Fehler werde ich nicht los.</p>
<p>Meine Überlegung ist folgende, da der abundzu eine Fehlermeldung rausgab(JavaScript Problem Seite weiterhin ausführen etc.), das Programm aber die Komponente mit der obengenannte Methode versuchte zu killen. Das es evtl. dadran liegt.<br />
Aber wie ich solche JavaScript Fehlerfenster richtig behandel um so, den Fehler evt. zu beheben weiss ich nicht.</p>
<p>Hatt vielleicht einer so ein ähnliches Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177335</guid><dc:creator><![CDATA[the_hero99]]></dc:creator><pubDate>Sun, 19 Nov 2006 17:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Sun, 19 Nov 2006 18:05:38 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>benutzt den <a href="http://www.junix.ch/bcb/help/debug.html" rel="nofollow">Debugger</a>, um den Ablauf deines Programms und die Werte kritischer Variablen zu verfolgen.<br />
Die Fehlermeldung deutet darauf hin, das du auf ungültigen Speicher zugreifst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1177341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1177341</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 19 Nov 2006 18:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Wed, 22 Nov 2006 18:41:20 GMT]]></title><description><![CDATA[<p>Er stürzt ab mit der Fehlermeldung &quot;Ungültige Zeigeroperation&quot;.</p>
<p>Aber was ist an den Zeigern falsch? Warum ist keine Struktur drin? Das eine mal stürzt er nach 10 Minuten ab das anderen mal nach 30 Minuten usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179541</guid><dc:creator><![CDATA[the_hero99]]></dc:creator><pubDate>Wed, 22 Nov 2006 18:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 12:58:42 GMT]]></title><description><![CDATA[<p>Hi,<br />
ist in den Teilen, die du da zeigst, schwierig zu debuggen.<br />
Deshalb zwischendrin nur mal geraten:</p>
<blockquote>
<pre><code class="language-cpp">if(WebBrowser[bfenster]!=NULL)
        {
        delete WebBrowser[bfenster];
        }
</code></pre>
</blockquote>
<p>sollte ergänzt werden um solch eine NULLzuweisung:</p>
<pre><code class="language-cpp">if(WebBrowser[bfenster]!=NULL){
            delete WebBrowser[bfenster];
            WebBrowser[bfenster] = NULL;
        }
</code></pre>
<p>Dann kannst du sicher sein, das dein pointer nach dem delete auch ein Nullpointer ist und der Vergleich beim nächsten mal funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179955</guid><dc:creator><![CDATA[SilentSurfer]]></dc:creator><pubDate>Thu, 23 Nov 2006 12:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 13:12:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das hatte ich auch einmal, vergessen einen gelöschten Zeiger auf NULL zu setzen. Die Effekte sind sehr interessant, nur nicht vorhersehbar.</p>
<p>VG Pixfreak</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179965</guid><dc:creator><![CDATA[pixfreak]]></dc:creator><pubDate>Thu, 23 Nov 2006 13:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 13:45:41 GMT]]></title><description><![CDATA[<p>Die Abfrage auf NULL vor dem delete ist unnötig.<br />
Das Nullsetzen danach bringt auch nur dann etwas, wenn man vor der Verwendung jedesmal prüft ob der Zeiger evtl. Null ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179995</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 23 Nov 2006 13:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 13:52:17 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>:<br />
Genau darum geht es ja.</p>
<p>Richtigerweise prüft er ja vor dem DELETE schon auf einen NULL Pointer.<br />
Richtig Sinn macht das allerdings erst ,wenn der Zeiger nach dem DELETE auch auf NULL gesetzt wird, so kann er für diesen Zeiger nicht noch einmal DELETE aufrufen.</p>
<p>Natürlich muss man diesen Konstrukt konsequent nutzen, aber bei einem solchen Softwarekonstrukt, bei dem man immer wieder Objekte dynamisch erzeugt und löscht und und und, da macht es Sinn, sich die Zeit für eine solche Prüfung zu nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180000</guid><dc:creator><![CDATA[SilentSurfer]]></dc:creator><pubDate>Thu, 23 Nov 2006 13:52:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 14:02:29 GMT]]></title><description><![CDATA[<p>SilentSurfer schrieb:</p>
<blockquote>
<p>Richtigerweise prüft er ja vor dem DELETE schon auf einen NULL Pointer...</p>
</blockquote>
<p>Genau das habe ich moniert. Ein Test auf NULL vor einem delete macht keinen Sinn, da eine delete auf einen Nullzeiger zulässig ist. Wahrscheinlich macht das delete dann einfach gar nichts.<br />
Wenn er statt dem Array auf Webbrowser einen vector nehmen würde, könnte man dort den Eintrag einfach löschen. So würde die Abfrage entfallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180013</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 23 Nov 2006 14:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 14:42:35 GMT]]></title><description><![CDATA[<p>Bei einem DELETE auf einen NULL Pointer bin ich momentan etwas überfragt, ein DELETE auf ein (gültigen) Pointer eines freigegebens Objekt dagegen löst auf jeden Fall einen Fehler aus.</p>
<p>Er soll den NULL Pointer nur als Markierung dafür benutzen, das das Objekt schon gelöscht ist.</p>
<p>Was den Vektor betrifft, da hast du natürlich recht, das würde die Verwaltung der dynamischen Objekte vereinfachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180053</guid><dc:creator><![CDATA[SilentSurfer]]></dc:creator><pubDate>Thu, 23 Nov 2006 14:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 15:02:32 GMT]]></title><description><![CDATA[<p>SilentSurfer schrieb:</p>
<blockquote>
<p>ein (gültigen) Pointer eines freigegebens Objekt</p>
</blockquote>
<p>Das ist ein Widerspruch in sich.</p>
<p>SilentSurfer schrieb:</p>
<blockquote>
<p>Er soll den NULL Pointer nur als Markierung dafür benutzen, das das Objekt schon gelöscht ist.</p>
</blockquote>
<p>Das ist der Sinn des Nullsetzens, ja. Prüfen ist aber tatsächlich nur vor der <strong>Verwendung</strong> (ausgenommen delete) nötig.</p>
<p>Zum Thema: Ist das eine Compilerfehlermeldung oder zur Laufzeit? Kann mich nur dem Hinweis auf den Debugger anschliessen. In jedem Fall lässt sich bei einem Fehler im Debugger die exakte Zeile feststellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180070</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Thu, 23 Nov 2006 15:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 15:15:32 GMT]]></title><description><![CDATA[<p>OK, zugegeben,<br />
mit dem &quot;gültigen&quot; Pointer auf ein gelöschtes Objekt bin ich etwas über das Ziel hinausgelaufen.</p>
<p>Was ich sagen wollte, war, das in</p>
<pre><code class="language-cpp">WebBrowser[bfenster]
</code></pre>
<p>ein Zeiger vom Typ TCppWebBrowser steht.<br />
Nach dem DELETE ist der Zeiger nicht mehr gültig, aber immer noch ein Zeiger vom Typ TCppWebBrowser, oder versteh ich das falsch?</p>
<p>Auf diesen Zeiger darf kein DELETE mehr ausgeführt werden, daher vorher die Markierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180083</guid><dc:creator><![CDATA[SilentSurfer]]></dc:creator><pubDate>Thu, 23 Nov 2006 15:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Thu, 23 Nov 2006 16:41:17 GMT]]></title><description><![CDATA[<p>Weshalb man sie ja nach dem delete null setzen sollte.... (o;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180170</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Thu, 23 Nov 2006 16:41:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Fehler beheben? Programm stürt ab(Debug Ausgabe dabei) on Fri, 24 Nov 2006 07:10:26 GMT]]></title><description><![CDATA[<p>Danke junix,<br />
war es nicht genau das, was ich am Anfang vorgeschlagen hatte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180458</guid><dc:creator><![CDATA[SilentSurfer]]></dc:creator><pubDate>Fri, 24 Nov 2006 07:10:26 GMT</pubDate></item></channel></rss>