<?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] Exception fangen]]></title><description><![CDATA[<p>Hi Leute</p>
<p>an einer Stelle wirft meine Software eine Exception. Da ich unter Linux mit Eclipse + gcc arbeite, bekomm ich keinen Hinweis auf die Ort der Exception.</p>
<p>Daher wollte ich mal mit try catch Blöcken nach und nach den Ort der Exception eingrenzen.</p>
<p>Testweise hab ich mal so angefangen und künstlich eine Exception erzeugt:</p>
<pre><code class="language-cpp">try { int j = 10 / 0; }
catch ( exception &amp;e ) { cout &lt;&lt; &quot;Error&quot; &lt;&lt; endl; }
</code></pre>
<p>Das sollte ja eigentlich die Exception fangen und die Textausgabe vornehmen.<br />
Leider wird die Exception in dem Fall nicht gefangen.Warum?</p>
<p>Habe es auch mit &quot;catch( ... )&quot; versucht. Funzt auch nicht. Wie kann ich denn Exceptions jedes Typs fangen? ( Ich weiß nämlich nicht, welcher Art meine Exception ist <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/topic/242262/debug-exception-fangen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 02:52:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242262.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Jun 2009 18:54:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 18:54:03 GMT]]></title><description><![CDATA[<p>Hi Leute</p>
<p>an einer Stelle wirft meine Software eine Exception. Da ich unter Linux mit Eclipse + gcc arbeite, bekomm ich keinen Hinweis auf die Ort der Exception.</p>
<p>Daher wollte ich mal mit try catch Blöcken nach und nach den Ort der Exception eingrenzen.</p>
<p>Testweise hab ich mal so angefangen und künstlich eine Exception erzeugt:</p>
<pre><code class="language-cpp">try { int j = 10 / 0; }
catch ( exception &amp;e ) { cout &lt;&lt; &quot;Error&quot; &lt;&lt; endl; }
</code></pre>
<p>Das sollte ja eigentlich die Exception fangen und die Textausgabe vornehmen.<br />
Leider wird die Exception in dem Fall nicht gefangen.Warum?</p>
<p>Habe es auch mit &quot;catch( ... )&quot; versucht. Funzt auch nicht. Wie kann ich denn Exceptions jedes Typs fangen? ( Ich weiß nämlich nicht, welcher Art meine Exception ist <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/1719260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719260</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 01 Jun 2009 18:54:03 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 18:56:22 GMT]]></title><description><![CDATA[<p>Eine Division durch 0 wirft keine std::exception.</p>
<p>Unter Windos gibt das eine SEH (Structured Exception Handling) Exception.<br />
Unter Linux weiss ich es nicht, kann mir aber vorstellen, dass ein SIGXX kommt.</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719262</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Mon, 01 Jun 2009 18:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 19:02:51 GMT]]></title><description><![CDATA[<p>Ich würde solche Fehler vorher abfragen und gegebenenfalls durch eigene Exceptions melden. Oder besser schauen, dass sie gar nicht erst vorkommen (wenn möglich). Denn es gibt keinen standardkonformen Weg, solche Fehler abzufangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719265</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 01 Jun 2009 19:02:51 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 19:10:12 GMT]]></title><description><![CDATA[<p>Ok, sollte ja auch nur ein Test sein. Dennoch weiß ich nicht, wie ich am besten an solche unbekannten Exceptions rangehe.</p>
<p>Ich weiß zwar in welcher Funktion es raucht, aber das ist immernoch ne Menge Code.<br />
Außerdem handelt es sich hier um eine Software die Multithreaded arbeitet. CURL ist auch noch mit im Spiel...</p>
<p>Daher wollte ich auch erstmal alles abfangen was irgendwie geht und das dann nach und nach eingrenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719268</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 01 Jun 2009 19:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 19:22:36 GMT]]></title><description><![CDATA[<p>Kannst du die Fehler nicht bereits so eingrenzen? Du siehst ja, wo das Programm abstürzt...</p>
<p>Denn einfach alles mit <code>try</code> -Blöcken zu umschliessen ist auch nicht gerade das Wahre. Da ist ein Absturz oft sogar besser als ein bewusstes Ignorieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719273</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 01 Jun 2009 19:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 19:45:43 GMT]]></title><description><![CDATA[<p>Nee, die try catch blöcke sollen ja dann auch wieder raus, wenn ich die Ursache gefunden habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719290</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 01 Jun 2009 19:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 19:47:09 GMT]]></title><description><![CDATA[<p>Wenn du mit Eclipse und gcc auf Linux arbeitest, dann verwende doch den gdb. Das ist der GNU Debugger. Es gibt auch Plugins für Eclipse, damit du ein GUI hast.</p>
<p>Aber grundsätzlich auf Kommandozeileneben ist es ganz einfach:</p>
<pre><code>Du kompilierst den Code mit Debuginformationen (-g ist wichtig):
g++ -g -o program program.cpp

Nun führst du den gdb aus:
gdb program
Blablabla Copyright

(gdb) catch throw
Catchpoint 1 (throw)
(gdb) run
Blablabla Programm läuft

...

Catchpoint 1 (exception thrown)
0x004034fc in __cxa_throw ()
(gdb) where
... Standortangabe ...
</code></pre>
<p>Im Internet gibt es viele Tutorials <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1719291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719291</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 01 Jun 2009 19:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Mon, 01 Jun 2009 20:17:39 GMT]]></title><description><![CDATA[<p>Cool, das klingt gut <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>
<p>Ist vielleicht nicht der Debug-Luxus von CBuilder und MSVC, aber besser als nix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Habe mal die Executable gestartet und die hat mir zumindest einen weiteren Hinweis gegeben: &quot;Segmentation fault&quot; <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/1719304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719304</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 01 Jun 2009 20:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to [Debug] Exception fangen on Tue, 02 Jun 2009 18:43:28 GMT]]></title><description><![CDATA[<p>Scheinbar liegt das Problem bei der CURL.</p>
<p>Ich habe mehrere Datapools. Jeder davon hat einen eigenen Thread und ein eigenes CURL-objekt.Ich war eigentlich der Meinung gelesen zu haben, dass CURL threadsafe ist...</p>
<p>Daher bin ich jetzt ein wenig verwundert. <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/1719920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1719920</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 02 Jun 2009 18:43:28 GMT</pubDate></item></channel></rss>