Talk:IDE Debug Helpers: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Suggested fix for qt5.natvis for QList expansion)
 
 
(One intermediate revision by one other user not shown)
Line 21: Line 21:


Someone might want to apply this as a patch to the next version of the qt5.natvis file.
Someone might want to apply this as a patch to the next version of the qt5.natvis file.
---
Can someone who understands what is supposed to go in the autoexp.dat file please fix the formatting of this page?
[[User:Rakslice|Rakslice]] ([[User talk:Rakslice|talk]]) 01:11, 12 May 2017 (UTC)
== QDate showing MDY in addition to Julian day ==
It would be an improvement for qt5.natvis if QDate was shown not only as Julian day
  { julian day = 2459412 }
but also in a DMY form like this
    { julian day = 2459412 }
      [day]: 16
      [month]: 7
      [year]: 2021
    [Raw View]: {jd=2459412 }
this can be done by using
  <Type Name="QDate">
    <DisplayString>{{ julian day = {jd} }}</DisplayString>
    <Expand>
      <Item Name="[day]">((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) % 153) / 5 + 1</Item>
      <Item Name="[month]">((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) / 153 + 2) % 12 + 1</Item>
      <Item Name="[year]">((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) / 1461) - 4716 + (14 - (((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) / 153 + 2) % 12 + 1)) / 12</Item>
    </Expand>
  </Type>
instead of
  <Type Name="QDate">
    <DisplayString>{{ julian day = {jd} }}</DisplayString>
    <Expand></Expand>
  </Type>
as it is done currently.

Latest revision as of 09:50, 16 July 2021

For people that have trouble with the QList expansion, please update the current QList part in qt5.natvis with:

   <Type Name="QList<*>">
       <AlternativeType Name="QStringList"></AlternativeType>
       <AlternativeType Name="QQueue<*>"></AlternativeType>
       <DisplayString>{{ size = {d->end - d->begin} }}</DisplayString>
       <Expand>
           <Item Name="[referenced]">d->ref.atomic._q_value</Item>
           <IndexListItems Condition="QTypeInfo<$T1>::isLarge || QTypeInfo<$T1>::isStatic">
               <Size>d->end - d->begin</Size>
               <ValueNode>*reinterpret_cast<$T1*>(reinterpret_cast<Node*>(d->array + d->begin + $i)->v)</ValueNode>
           </IndexListItems>
           <IndexListItems Condition="!(QTypeInfo<$T1>::isLarge || QTypeInfo<$T1>::isStatic)">
               <Size>d->end - d->begin</Size>
           	<ValueNode>*reinterpret_cast<$T1*>(d->array + d->begin + $i)</ValueNode>
           </IndexListItems>
       </Expand>
   </Type>

This fixes some Node* expansion issues when you have a struct that is exactly sizeof(void*) (which somehow end up being in a Node instead of being directly in the QList)

Someone might want to apply this as a patch to the next version of the qt5.natvis file.

--- Can someone who understands what is supposed to go in the autoexp.dat file please fix the formatting of this page? Rakslice (talk) 01:11, 12 May 2017 (UTC)

QDate showing MDY in addition to Julian day

It would be an improvement for qt5.natvis if QDate was shown not only as Julian day

  { julian day = 2459412 }

but also in a DMY form like this

   { julian day = 2459412 }
      [day]: 16
      [month]: 7
      [year]: 2021
   [Raw View]: {jd=2459412 }

this can be done by using

 <Type Name="QDate">
   <DisplayString>{{ julian day = {jd} }}</DisplayString>
   <Expand>
     <Item Name="[day]">((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) % 153) / 5 + 1</Item>
     <Item Name="[month]">((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) / 153 + 2) % 12 + 1</Item>
     <Item Name="[year]">((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) / 1461) - 4716 + (14 - (((5 * (((4 * (jd + 1401 + (((4 * jd + 274277) / 146097) * 3) / 4 - 38) + 3) % 1461) / 4) + 2) / 153 + 2) % 12 + 1)) / 12</Item>
   </Expand>
 </Type>

instead of

  <Type Name="QDate">
    <DisplayString>{{ julian day = {jd} }}</DisplayString>
    <Expand></Expand>
  </Type>

as it is done currently.