<?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[Crash in release mode]]></title><description><![CDATA[<p dir="auto">I have a project. I’m using Windows 10 and Qt 6.9. While in Release mode, the app crashes at different intervals (such as 3 minutes, 5 minutes, 10 minutes), but I don’t see the same issue when I run it in Debug mode.</p>
<p dir="auto">I’d like to add a few more details.<br />
I’m using WebEngineView.<br />
<img src="https://ddgobkiprc33d.cloudfront.net/6b89a9fe-ec7b-4ef0-86c0-673ef98ad8f8.jpeg" alt="IMG_0980.jpeg" class=" img-fluid img-markdown" /><br />
As shown in the image, the WebEngineView occupies a large portion of my widget.<br />
In debug mode, only the WebEngineView section lags.</p>
<p dir="auto">If you’re wondering why I mentioned this, it occurred to me that the WebEngine might be the cause of the crash.</p>
<p dir="auto">I’ve added many print statements using <code>qDebug()</code>, but since the crash occurs in a different place each time, I can’t figure it out.</p>
<p dir="auto">What are your suggestions?</p>
]]></description><link>https://forum.qt.io/topic/164685/crash-in-release-mode</link><generator>RSS for Node</generator><lastBuildDate>Mon, 08 Jun 2026 14:19:03 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/164685.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 May 2026 08:07:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Crash in release mode on Tue, 19 May 2026 07:21:31 GMT]]></title><description><![CDATA[<p dir="auto">I would like to ask something. I do not change address manually.<br />
I should explain my app little.</p>
<pre><code>//receiving struct
struct MyObj{
İnt id;
QTimer *timer = nullptr;
}

//socket tcp 
void readyRead(){
QList&lt;MyObj&gt; objs;

//data parsing here and append list(MyObj)

emit sendObjs(objs);
}


//mainwindow
void receiveObjs(QList&lt;MyObj&gt; objs){
// I control here objs is exist or not 
// I took _objs list in mainwindow and control with new objs list receiving obj id. İf id exist in _objs update pareters, or id do not exist in _objs MyObj append to list

for(MyObj &amp;obj : objs){
İf(do not exist){
//start remove timer 
Obj.timer = new Timer
Obj.timer-&gt;serSingleshoot(true);
Connect(obj.timer … {
removeObj(obj.id);
});
Obj.timer-&gt;start(15000);

addTable(obj)

_objs.append(obj);
}
else{
// id control in _objs and updare parameters
// timer start again
// addTable again
}
}
//send _obs list to somewhere, it just set to list local as parameters 

}

Void removeObj(id){
//stop timer
//remove from table
//remove from_objs list
}

Void addTable(MyObj obj){
// id check
// if rows has id, update row
// else add new row
}
</code></pre>
<p dir="auto">So, I take data from tcp socket as they are some object and, I send to main for update my list, also I check received objects still exist or not, İf they not remove.</p>
<p dir="auto">Now. How _objs list address broken?</p>
<p dir="auto">I have written on mobile device, sorry for bas syntax;</p>
]]></description><link>https://forum.qt.io/post/838301</link><guid isPermaLink="true">https://forum.qt.io/post/838301</guid><dc:creator><![CDATA[Joe von Habsburg]]></dc:creator><pubDate>Tue, 19 May 2026 07:21:31 GMT</pubDate></item><item><title><![CDATA[Reply to Crash in release mode on Tue, 19 May 2026 06:46:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/j.hilk">@<bdi>J.Hilk</bdi></a> This sounds like the address sanitizer or thread sanitizer could help (maybe).</p>
]]></description><link>https://forum.qt.io/post/838300</link><guid isPermaLink="true">https://forum.qt.io/post/838300</guid><dc:creator><![CDATA[SimonSchroeder]]></dc:creator><pubDate>Tue, 19 May 2026 06:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Crash in release mode on Mon, 18 May 2026 08:50:54 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/j.hilk">@<bdi>J.Hilk</bdi></a> Thank you for your reply</p>
]]></description><link>https://forum.qt.io/post/838285</link><guid isPermaLink="true">https://forum.qt.io/post/838285</guid><dc:creator><![CDATA[Joe von Habsburg]]></dc:creator><pubDate>Mon, 18 May 2026 08:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to Crash in release mode on Mon, 18 May 2026 08:31:37 GMT]]></title><description><![CDATA[<p dir="auto">The most common reasons this only shows up in release builds:</p>
<ul>
<li>Uninitialized memory. Debug builds tend to zero-initialize or pad allocations, so reads of uninitialized values accidentally return 0. Release reuses whatever was there.</li>
<li>Use-after-free. Debug allocators often keep freed memory around a bit longer, so dangling pointer accesses "work". Release reuses memory immediately.</li>
<li>Race conditions. The slower execution in debug masks timing issues between threads. In release, two threads actually collide.</li>
<li>Compiler optimizations eliminating reads. If you have a flag or state variable that's written from one thread and read from another without proper synchronization, the optimizer is allowed to cache it in a register and never re-read it from memory.</li>
</ul>
<p dir="auto">Regarding WebEngine specifically: it runs Chromium in a separate process, and if your app is doing anything with shared memory, callbacks into QObjects across threads, or raw pointers that get passed around through WebEngine's JS bridge, those are all worth checking.</p>
]]></description><link>https://forum.qt.io/post/838283</link><guid isPermaLink="true">https://forum.qt.io/post/838283</guid><dc:creator><![CDATA[J.Hilk]]></dc:creator><pubDate>Mon, 18 May 2026 08:31:37 GMT</pubDate></item></channel></rss>