<?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[Was bedeutet dieser Debugerfehler]]></title><description><![CDATA[<p>Ich hab ein Problem (obwohl ich weiß noch nicht, ob es wirklich eines ist). Beim Ausführen meines Programms öffnet sich eine Message Box, die einen Debugerfehler angezeigt: <strong>&quot;Debug Assertion failed&quot;</strong>. Klicke ich nun auf den Button ignorieren, macht das Programm trotzdem das, was es soll. Nun frage ich mich aber trotzdem, ob ich die die Fehlermeldung beachten sollte um mir spätere Probleme zu ersparen.</p>
<p>Das Programm wartet in der Methode &quot;acceptConnection&quot; der <strong>Klasse &quot;Server&quot;</strong> mit einem blockierenden Accept auf eine eingehende Socket-Verbindung. Ist die Verbindung erfolgt, wird die Thread-Funktion &quot;clientServerThread&quot; gestartet, wobei als Parameter ein Zeiger auf ein Array von Objekten der von mir erstellten <strong>Klasse &quot;ClientConnection&quot;</strong> übergeben wird.<br />
[cpp]<br />
BOOL Server::acceptConnection(UINT slotNr)<br />
{<br />
if(serverSock.Accept(clientConnections[slotNr].getInBufSocketSocket()))<br />
{<br />
// 2.Parameter: Zeiger auf Array von Objekten<br />
AfxBeginThread(clientServerThread, (LPVOID) clientConnections);<br />
return TRUE;<br />
}<br />
else<br />
return FALSE;<br />
}</p>
<p>// Threadfunction for Client-Server Connection; processing of incoming Messages<br />
UINT clientServerThread(LPVOID pParam)<br />
{<br />
ClientConnection * cc = static_cast&lt;ClientConnection*&gt;(pParam);</p>
<p>// Zeiger auf erstes Objekt des Arrays<br />
ClientConnection * test = &amp;cc[0];<br />
Message m;<br />
CString bla;</p>
<p><strong>// -----&gt;Hier tritt der Debug Fehler auf-------&gt;<br />
// im Wesentlichen wird dabei die Methode unten aufgerufen...<br />
// also bitte erstmal weiterlesen</strong><br />
cc-&gt;fetchNextMessage();</p>
<p>// Speichert Nachricht in ein Objekt des Typs &quot;Messsage&quot;<br />
m = *cc-&gt;getMessage();<br />
bla = *m.getSender(); // Sender der Nachricht wird in CString gespeichert</p>
<p>// Trotz Debug Fehler wird hier die Nachricht korrekt ausgegeben<br />
std::cout &lt;&lt; bla.GetBuffer(0) &lt;&lt; &quot;\n&quot;;</p>
<p>return 0;<br />
}[/cpp]</p>
<p>Die Klasse &quot;ClientConnection&quot; enthält unter anderem ein Objekt des Typs <strong>InBufSocket</strong> das im Wesentlichen aus einem Konstrukt aus einem <strong>CSocket</strong>, einem <strong>CArchive</strong> und einem <strong>CSocketFile</strong> besteht, das als Eingangspuffer für eingehende Nachrichten dient (das Konstrukt aus diesen 3 Objekten wird im MSDN beschrieben und funktioniert auch).<br />
Die Methode fetchNextMessage(), bei der oben der Fehler auftritt ruft im Prinzip nur die Methode :</p>
<pre><code class="language-cpp">BOOL InBufSocket::acceptMessage(Message * m) {
	BYTE tempB;
	WORD tempW;
	CString tempCS;

      // Copy received date into 'Message' object
	try 
	{
         // --&gt; buf ist der Zeiger auf das CArchive Objekt
         // Hier tritt der Fehler auf:
		buf-&gt;operator &gt;&gt; (tempB);
		m-&gt;setMsgType(tempB);

            //.......	
      }
	catch (...) {
		return FALSE;
	}

	return TRUE;
}
</code></pre>
<p>auf. Dazu ist vielleicht noch zu sagen, das diese Methode (und natürlich die zugehörige Klasse) in einer DLL vorhanden wird, die vom Hauptprogramm oben aufgerufen wird.</p>
<p>Ich hoffe das was ich geschrieben habe kann jemand nachvollziehen. Mich interessiert ja eigentlich nur, was dieses &quot;Debug assertion failed&quot; bedeutet, ob man es ignorieren kann und was man evtl. dagegen tun kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/68547/was-bedeutet-dieser-debugerfehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 06 Jun 2026 21:10:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/68547.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Mar 2004 20:11:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was bedeutet dieser Debugerfehler on Thu, 18 Mar 2004 20:14:05 GMT]]></title><description><![CDATA[<p>Ich hab ein Problem (obwohl ich weiß noch nicht, ob es wirklich eines ist). Beim Ausführen meines Programms öffnet sich eine Message Box, die einen Debugerfehler angezeigt: <strong>&quot;Debug Assertion failed&quot;</strong>. Klicke ich nun auf den Button ignorieren, macht das Programm trotzdem das, was es soll. Nun frage ich mich aber trotzdem, ob ich die die Fehlermeldung beachten sollte um mir spätere Probleme zu ersparen.</p>
<p>Das Programm wartet in der Methode &quot;acceptConnection&quot; der <strong>Klasse &quot;Server&quot;</strong> mit einem blockierenden Accept auf eine eingehende Socket-Verbindung. Ist die Verbindung erfolgt, wird die Thread-Funktion &quot;clientServerThread&quot; gestartet, wobei als Parameter ein Zeiger auf ein Array von Objekten der von mir erstellten <strong>Klasse &quot;ClientConnection&quot;</strong> übergeben wird.<br />
[cpp]<br />
BOOL Server::acceptConnection(UINT slotNr)<br />
{<br />
if(serverSock.Accept(clientConnections[slotNr].getInBufSocketSocket()))<br />
{<br />
// 2.Parameter: Zeiger auf Array von Objekten<br />
AfxBeginThread(clientServerThread, (LPVOID) clientConnections);<br />
return TRUE;<br />
}<br />
else<br />
return FALSE;<br />
}</p>
<p>// Threadfunction for Client-Server Connection; processing of incoming Messages<br />
UINT clientServerThread(LPVOID pParam)<br />
{<br />
ClientConnection * cc = static_cast&lt;ClientConnection*&gt;(pParam);</p>
<p>// Zeiger auf erstes Objekt des Arrays<br />
ClientConnection * test = &amp;cc[0];<br />
Message m;<br />
CString bla;</p>
<p><strong>// -----&gt;Hier tritt der Debug Fehler auf-------&gt;<br />
// im Wesentlichen wird dabei die Methode unten aufgerufen...<br />
// also bitte erstmal weiterlesen</strong><br />
cc-&gt;fetchNextMessage();</p>
<p>// Speichert Nachricht in ein Objekt des Typs &quot;Messsage&quot;<br />
m = *cc-&gt;getMessage();<br />
bla = *m.getSender(); // Sender der Nachricht wird in CString gespeichert</p>
<p>// Trotz Debug Fehler wird hier die Nachricht korrekt ausgegeben<br />
std::cout &lt;&lt; bla.GetBuffer(0) &lt;&lt; &quot;\n&quot;;</p>
<p>return 0;<br />
}[/cpp]</p>
<p>Die Klasse &quot;ClientConnection&quot; enthält unter anderem ein Objekt des Typs <strong>InBufSocket</strong> das im Wesentlichen aus einem Konstrukt aus einem <strong>CSocket</strong>, einem <strong>CArchive</strong> und einem <strong>CSocketFile</strong> besteht, das als Eingangspuffer für eingehende Nachrichten dient (das Konstrukt aus diesen 3 Objekten wird im MSDN beschrieben und funktioniert auch).<br />
Die Methode fetchNextMessage(), bei der oben der Fehler auftritt ruft im Prinzip nur die Methode :</p>
<pre><code class="language-cpp">BOOL InBufSocket::acceptMessage(Message * m) {
	BYTE tempB;
	WORD tempW;
	CString tempCS;

      // Copy received date into 'Message' object
	try 
	{
         // --&gt; buf ist der Zeiger auf das CArchive Objekt
         // Hier tritt der Fehler auf:
		buf-&gt;operator &gt;&gt; (tempB);
		m-&gt;setMsgType(tempB);

            //.......	
      }
	catch (...) {
		return FALSE;
	}

	return TRUE;
}
</code></pre>
<p>auf. Dazu ist vielleicht noch zu sagen, das diese Methode (und natürlich die zugehörige Klasse) in einer DLL vorhanden wird, die vom Hauptprogramm oben aufgerufen wird.</p>
<p>Ich hoffe das was ich geschrieben habe kann jemand nachvollziehen. Mich interessiert ja eigentlich nur, was dieses &quot;Debug assertion failed&quot; bedeutet, ob man es ignorieren kann und was man evtl. dagegen tun kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/483823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483823</guid><dc:creator><![CDATA[FrodoSix]]></dc:creator><pubDate>Thu, 18 Mar 2004 20:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet dieser Debugerfehler on Thu, 18 Mar 2004 23:12:52 GMT]]></title><description><![CDATA[<p>Dieses MessageBox bedeutet das etwas eingetreten ist was nicht eintreten soll.</p>
<p>z.B.</p>
<pre><code class="language-cpp">int x = 3;
ASSERT(x == 3); // x muss 3 sein sonst wäre das echt voll super doof - echt ;)
</code></pre>
<p>Wurde das Programm im Debugmodus kompiliert und x ist nicht 3 so kommt eine MessageBox die einem mitteilt das die Behauptung nicht stimmt. Drückt man auf Wiederholung und das Studio schmiert einem vorher nicht ab so landet man in der Zeile wo das ASSERT steht. Vorteil von ASSERT ist das es im Release Modus keinen zusätzlichen Code produziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/483939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483939</guid><dc:creator><![CDATA[Oliver]]></dc:creator><pubDate>Thu, 18 Mar 2004 23:12:52 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet dieser Debugerfehler on Thu, 18 Mar 2004 23:32:01 GMT]]></title><description><![CDATA[<p>wenn du dir arbeit beim debuggen sparen willst solltest du immer ein assert auf zustände legen die nie auftreten dürfen<br />
z.b.</p>
<pre><code class="language-cpp">long array[15];

long GetVal(int Index)
{
  assert(Index&gt;=0 &amp;&amp; Index&lt;15);
  return array[Index];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/483952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483952</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Thu, 18 Mar 2004 23:32:01 GMT</pubDate></item></channel></rss>