Beef.natvis 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  3. <Type Name="Beefy::BfAstNode">
  4. <DisplayString>{{{(*(Beefy::BfSource**)(((intptr_t)this &amp; 0x7FFFFFFFFFFFF000UL)))->mSrc + mSrcStart,[mSrcEnd - mSrcStart]s8}}}</DisplayString>
  5. <Expand>
  6. <Item Name="[CharPtr]">(*(Beefy::BfSource**)(((intptr_t)this &amp; 0x7FFFFFFFFFFFF000UL)))->mSrc + mSrcStart</Item>
  7. <Item Name="[Source]">(*(Beefy::BfSource**)(((intptr_t)this &amp; 0x7FFFFFFFFFFFF000UL)))</Item>
  8. </Expand>
  9. </Type>
  10. <Type Name="Beefy::DwType">
  11. <DisplayString>{{{mTypeCode} {mName} mParent:{mParent}}}</DisplayString>
  12. </Type>
  13. <Type Name="Beefy::BfMethodDef">
  14. <DisplayString Condition="mIsStatic">{{static {mName}}</DisplayString>
  15. <DisplayString Condition="!mIsStatic">{{{mName}}</DisplayString>
  16. <Expand>
  17. <Item Name="[Name]">mName</Item>
  18. <Item Name="[Declaration]">mMethodDeclaration</Item>
  19. </Expand>
  20. </Type>
  21. <Type Name="Beefy::BfMethodInstance">
  22. <DisplayString>{{{mMethodDef->mName} in {mMethodInstanceGroup->mOwner}}</DisplayString>
  23. <Expand>
  24. <Item Name="[MethodDef]">mMethodDef</Item>
  25. <Item Name="[Type]">mMethodInstanceGroup->mOwner</Item>
  26. </Expand>
  27. </Type>
  28. <Type Name="Beefy::BfFieldInstance">
  29. <DisplayString>{{{mOwner->mTypeDef->mFields._Myfirst[mFieldIdx]->mName} in {mOwner}}</DisplayString>
  30. <Expand>
  31. <Item Name="[FieldDef]">mOwner->mTypeDef->mFields._Myfirst[mFieldIdx]</Item>
  32. <Item Name="[Type]">mOwner</Item>
  33. </Expand>
  34. </Type>
  35. <Type Name="Beefy::BfTypeDef">
  36. <DisplayString Condition="mOuterType == 0">{{{mNamespace, na}.{mName, na}}}</DisplayString>
  37. <DisplayString Condition="mOuterType != 0">{{{mOuterType, na}.{mName, na}}}</DisplayString>
  38. </Type>
  39. <Type Name="Beefy::BfTypeInstance">
  40. <DisplayString>{{{mTypeDef}}}</DisplayString>
  41. </Type>
  42. <Type Name="Beefy::BfGenericTypeInstance">
  43. <DisplayString Condition="mTypeGenericArguments.mSize == 1">{{{mTypeDef}&lt;{mTypeGenericArguments.mVals[0]}&gt;}}</DisplayString>
  44. <DisplayString Condition="mTypeGenericArguments.mSize == 2">{{{mTypeDef}&lt;{mTypeGenericArguments.mVals[0]}, {mTypeGenericArguments.mVals[1], na}&gt;}}</DisplayString>
  45. <DisplayString Condition="mTypeGenericArguments.mSize == 3">{{{mTypeDef}&lt;{mTypeGenericArguments.mVals[0]}, {mTypeGenericArguments.mVals[1], na}, {mTypeGenericArguments.mVals[2], na }&gt;}}</DisplayString>
  46. <DisplayString Condition="mTypeGenericArguments.mSize == 4">{{{mTypeDef}&lt;{mTypeGenericArguments.mVals[0]}, {mTypeGenericArguments.mVals[1], na}, {mTypeGenericArguments.mVals[2], na }, {mTypeGenericArguments.mVals[3], na}&gt;}}</DisplayString>
  47. <DisplayString Condition="mTypeGenericArguments.mSize >= 5">{{{mTypeDef}&lt;{mTypeGenericArguments.mVals[0]}, {mTypeGenericArguments.mVals[1], na}, {mTypeGenericArguments.mVals[2], na }, {mTypeGenericArguments.mVals[3], na}, ...&gt;}}</DisplayString>
  48. </Type>
  49. <Type Name="Beefy::BfPointerType">
  50. <DisplayString>{{ptr {mElementType}}}</DisplayString>
  51. </Type>
  52. <Type Name="Beefy::BfBoxedType">
  53. <DisplayString>{{boxed {mElementType}*}}</DisplayString>
  54. </Type>
  55. <Type Name="Beefy::BfPrimitiveType">
  56. <DisplayString>{{{mTypeDef->mName}}}</DisplayString>
  57. </Type>
  58. <Type Name="Beefy::BfAtom">
  59. <DisplayString>{*mString, na}</DisplayString>
  60. </Type>
  61. <Type Name="Beefy::BfAtomComposite">
  62. <DisplayString Condition="mParts.mSize == 0">{{empty}}</DisplayString>
  63. <DisplayString Condition="mParts.mSize == 1">{{{mParts[0], na}}}</DisplayString>
  64. <DisplayString Condition="mParts.mSize == 2">{{{mParts[0], na}.{mParts[1], na}}}</DisplayString>
  65. <DisplayString Condition="mParts.mSize == 3">{{{mParts[0], na}.{mParts[1], na}.{mParts[2], na }}}</DisplayString>
  66. <DisplayString Condition="mParts.mSize == 4">{{{mParts[0], na}.{mParts[1], na}.{mParts[2], na }.{mParts[3], na}}}</DisplayString>
  67. <DisplayString Condition="mParts.mSize == 5">{{{mParts[0], na}.{mParts[1], na}.{mParts[2], na }.{mParts[3], na}.{mParts[4], na}}}</DisplayString>
  68. <DisplayString Condition="mParts.mSize > 5">{{{mParts[0], na}.{mParts[1], na}.{mParts[2], na }.{mParts[3], na}.{mParts[4], na}...}}</DisplayString>
  69. </Type>
  70. <Type Name="Beefy::BfGenericParamType">
  71. <DisplayString Condition="mGenericParamKind == 0">{{@T{mGenericParamIdx}}}</DisplayString>
  72. <DisplayString Condition="mGenericParamKind == 1">{{@M{mGenericParamIdx}}}</DisplayString>
  73. </Type>
  74. <Type Name="Beefy::BfContext">
  75. <DisplayString Condition="this == mCompiler->mContexts[0]">Context0</DisplayString>
  76. <DisplayString Condition="this == mCompiler->mContexts[1]">Context1</DisplayString>
  77. </Type>
  78. <Type Name="Beefy::BfModule">
  79. <Expand>
  80. <Item Name="[ModuleName]">mModuleName</Item>
  81. <Item Name="[CurMethodInstance]">mCurMethodInstance</Item>
  82. <Item Name="[File]">mCurFilePosition.mFileInstance->mParser->mFileName</Item>
  83. <Item Name="[LineNum]">mCurFilePosition.mCurLine + 1</Item>
  84. <Item Name="[ExprText]">mCurFilePosition.mFileInstance->mParser->mSrc + mCurFilePosition.mCurSrcPos</Item>
  85. <Item Name="[Context]">mContext</Item>
  86. </Expand>
  87. </Type>
  88. </AutoVisualizer>