title: EXCEPTION_ACCESS_VIOLATION (read from address 0xffffffffffffffff)
body: <p>I want to know how to interpret <code>0xffffffffffffffff</code> (in backtraces)</p>
  
  <p>I know:</p>
  
  <ol>
  <li><p>reading from <code>0</code> / <code>nullptr</code> is a not valid address.</p></li>
  <li><p>reading from <code>0x58</code>, after the object there was deleted, will result in access violation, because I do not own the memory location.</p></li>
  </ol>
  
  <p>So for <code>0xffffffffffffffff</code>, I know / assume:</p>
  
  <ol>
  <li>It's a 64 bits pointer</li>
  <li>Object behind it is probably not deleted</li>
  <li><code>object* obj;</code> would create pointer of type object* on the stack, value <code>0</code> / <code>nullptr</code>.</li>
  <li><code>object* obj = new object()</code> would create object on heap, store pointer to it in <code>obj</code>, with a valid address like <code>000000000BD0ADA0</code> - needs to be deleted with <code>delete obj</code> at some point.</li>
  <li><code>0xffffffffffffffff</code> is all 1s in binary.</li>
  </ol>
  
  <p>Question: How do I end up with <code>0xffffffffffffffff</code></p>
  
  <ol>
  <li>sounds like a underflow or something, why?</li>
  <li>can this be related to the compiler, or the debugger?</li>
  <li>why is it <code>0xffffffffffffffff</code> ?</li>
  <li><strong>How should I interpret this?</strong> </li>
  </ol>
  
  <p>In my specific case, it's like this:</p>
  
  <ol>
  <li><code>CustomItem* name_item = new CustomItem (i, elems[i]);</code></li>
  <li>Custom Item constructor</li>
  </ol>
  
  <p><code>CustomItem (int sort_val, MyObject *obj) : _sort_val (sort_val), _mobj(obj) { }</code></p>
  
  <ol start="3">
  <li><code>model-&gt;setItem (i, 0, name_item);</code></li>
  <li><code>#0 Qt5Gui public: void cdecl QStandardItemModel::setItem(int,int,class QStandardItem * ptr64) ptr64 +0xd (ip 0x7fee721bcfd fp 0x168470)</code></li>
  </ol>