在前面的文章 中,讲解了如何编辑autoexp.dat方便调试的时候可以可视化变量的值。
这里再给出一个例子,QDateTime在Qt的安装包里没有的。
QDateTime|*::QDateTime{ preview ( #( "ref=",[((QAtomicInt*)($e.d.d))->_q_value,d], [(QDate*)((int)($e.d.d)+4)]," " [(QTime*)((int)($e.d.d)+8)] ) ) children ( #( [ref]:[(QAtomicInt*)($e.d.d)], [date]:[(QDate*)((int)($e.d.d)+4)], [time]:[(QTime*)((int)($e.d.d)+8)] ) ) }
QDate也是没有的,但是比较复杂。
QDate|*::QDate{ preview ( #if ($e.jd < 2299161)( #if( (((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10)) > 0)( #( "year=",[((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], ", month=",[(((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 3 - 12 * ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], ", day=",[(($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4) - (153 * (((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 2) / 5 + 1,d] ) ) #else( #( "year=",[((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10)-1,d], ", month=",[(((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 3 - 12 * ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], ", day=",[(($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4) - (153 * (((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 2) / 5 + 1,d] ) ) ) #else( #( "year=",[100 * (((4 * ($e.jd + 68569)) / 146097) - 49) + ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001) + ((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447) / 11,d], ", month=",[(80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447 + 2 - (12 * (((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447) / 11)),d], ", day=",[(($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31) - (2447 * ((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447)) / 80,d] ) ) ) children ( #if ($e.jd < 2299161)( #if( (((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10)) > 0) ( #( [year]:[((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], [month]:[(((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 3 - 12 * ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], [day]:[(($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4) - (153 * (((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 2) / 5 + 1,d] ) ) #else( #( [year]:[((4 * ($e.jd + 32082) + 3) / 1461) - 4800 + ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10)-1,d], [month]:[(((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 3 - 12 * ((((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) / 10),d], [day]:[(($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4) - (153 * (((5 * (($e.jd + 32082) - (1461 * ((4 * ($e.jd + 32082) + 3) / 1461)) / 4)) + 2) / 153) + 2) / 5 + 1,d] ) ) ) #else( #( [jd]: [$e.jd,d], [year]:[100 * (((4 * ($e.jd + 68569)) / 146097) - 49) + ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001) + ((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447) / 11,d], [month]:[(80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447 + 2 - (12 * (((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447) / 11)),d], [day]:[(($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31) - (2447 * ((80 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) - (1461 * ((4000 * (($e.jd + 68569 - (146097 * ((4 * ($e.jd + 68569)) / 146097) + 3) / 4) + 1)) / 1461001)) / 4 + 31)) / 2447)) / 80,d] ) ) ) }
参考:
VS高级使用方法1:autoexp.dat使用Visual studio在debug时显示变量内容:http://yaogangshi.iteye.com/admin/blogs/974332