-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathstd mutex.natvis
33 lines (31 loc) · 1.45 KB
/
std mutex.natvis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="std::_Mutex_base">
<Intrinsic Name="threadId" Expression="*(long*)((char*)&_Mtx_storage+sizeof(_Mtx_storage)-8)"/>
<Intrinsic Name="lockedCount" Expression="*(int*)((char*)&_Mtx_storage+sizeof(_Mtx_storage)-4)"/>
<Expand>
<Item Name="[type]">*((int*)&_Mtx_storage)</Item>
<Item Name="[thread_id]">threadId()</Item>
<Item Name="[count]">lockedCount()</Item>
</Expand>
</Type>
<Type Name="std::mutex">
<AlternativeType Name="std::recursive_mutex"/>
<DisplayString Condition="lockedCount() == 0">mutex unlocked</DisplayString>
<DisplayString>mutex locked({lockedCount()}) by thread (id={threadId()})</DisplayString>
<Expand>
<ExpandedItem>(_Mutex_base*)this</ExpandedItem>
</Expand>
</Type>
<Type Name="std::timed_mutex">
<AlternativeType Name="std::recursive_timed_mutex"/>
<DisplayString Condition="_My_locked == 0">timed mutex unlocked</DisplayString>
<DisplayString Optional="true">recursive timed mutex locked({_My_locked}) by thread (id={_My_owner._Id})</DisplayString>
<DisplayString>timed mutex locked({-_My_locked})</DisplayString>
<Expand>
<ExpandedItem>_My_mutex</ExpandedItem>
<Item Name="[locked]">(int)_My_locked</Item>
<Item Name="[owner]" Optional="true">_My_owner</Item>
</Expand>
</Type>
</AutoVisualizer>