Skip to content

Commit e16b267

Browse files
authored
Rename Extension (#4)
1 parent 569033c commit e16b267

8 files changed

+22
-23
lines changed

FuzzyRangeComparer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Collections.Generic;
22

3-
namespace PmipMyCallStack
3+
namespace UnityMixedCallstack
44
{
55
struct Range
66
{

Images/cs.png

-26.9 KB
Loading

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
Pmip My Call Stack
22
=====
33

4-
PmipMyCallStack is a Visual Studio 2015 extension to help debug native applications embedding Mono, like Unity.
4+
UnityMixedCallstack is a Visual Studio 2015 extension to help debug native applications embedding Mono, like Unity.
55

66
Mono doesn't generate debug symbols that Visual Studio understands for jitted functions.
77

88
As a result, Visual Studio can not show anything meaningful for managed stack frames.
99

1010
This fork of PmipMyCallstack has been developed for developers at unity-technologies and support has been added to our clone of mono, which can be found here https://github.com/Unity-Technologies/mono
1111

12-
This version requires you to set the MONO_PMIP environment variable before launching Unity or using our mono, which will tell the mono runtime to write out each jit'd function to a file.
12+
This version requires you to set the UNITY_MIXED_CALLSTACK environment variable before launching visual studio and before launching Unity (or using our mono standalone), which will tell the mono runtime to write out each jit'd function to a file.
1313

14-
The original PmipMyCallstack would call the function `mono_pmip` on every frame that doesn't belong to a module to show a meaningful representation of the stack frame and display it natively in the call stack window. This version of PmipMyCallstack does the same thing, but instead of calling over inter process communication, mono writes a file with the jit information and we lookup the IP from that. This allows us to open much larger callstacks, and many frames without visual studio hanging.
14+
The original PmipMyCallstack plugin created by JB Evain would call the function `mono_pmip` on every frame that doesn't belong to a module to show a meaningful representation of the stack frame and display it natively in the call stack window. This plugin does the same thing, but instead of calling over ipc, mono writes a file with the jit information and we lookup the IP from that. This allows us to open much larger callstacks, and many frames without visual studio hanging for a long time (an issue since Unity has so many threads).
1515

16-
In this version we also display the module the managed code belongs to, and the file and linenumber information if mono has loaded debug symbols. This gives you a nice callstack to look at in visual studio.
16+
In this version we also display the module the managed code belongs to. This gives you a nice callstack to look at in visual studio.
1717

1818
## Before
1919

20-
![Before Pmip My Call Stack](https://raw.githubusercontent.com/mderoy/PmipMyCallStack/master/Images/csb.png)
20+
![Before Unity Mixed Callstack](https://raw.githubusercontent.com/mderoy/PmipMyCallStack/master/Images/csb.png)
2121

2222
## After
2323

24-
![After Pmip My Call Stack](https://raw.githubusercontent.com/mderoy/PmipMyCallStack/master/Images/cs.png)
24+
![After Unity Mixed Callstack](https://raw.githubusercontent.com/mderoy/PmipMyCallStack/master/Images/cs.png)
2525

PmipMyCallStack.csproj renamed to UnityMixedCallstack.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<ProjectGuid>{9A899D87-5BFA-4886-B701-68C515F1371C}</ProjectGuid>
1515
<OutputType>Library</OutputType>
1616
<AppDesignerFolder>Properties</AppDesignerFolder>
17-
<RootNamespace>PmipMyCallStack</RootNamespace>
18-
<AssemblyName>PmipMyCallStack</AssemblyName>
17+
<RootNamespace>UnityMixedCallStack</RootNamespace>
18+
<AssemblyName>UnityMixedCallStack</AssemblyName>
1919
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
2020
<FileAlignment>512</FileAlignment>
2121
<GeneratePkgDefFile>false</GeneratePkgDefFile>
@@ -61,11 +61,11 @@
6161
</ItemGroup>
6262
<ItemGroup>
6363
<Compile Include="FuzzyRangeComparer.cs" />
64-
<Compile Include="PmipCallStackFilter.cs" />
64+
<Compile Include="UnityMixedCallStackFilter.cs" />
6565
<Compile Include="Properties\AssemblyInfo.cs" />
6666
</ItemGroup>
6767
<ItemGroup>
68-
<VsdConfigXmlFiles Include="PmipMyCallStack.vsdconfigxml" />
68+
<VsdConfigXmlFiles Include="UnityMixedCallStack.vsdconfigxml" />
6969
</ItemGroup>
7070
<ItemGroup>
7171
<None Include="source.extension.vsixmanifest">
@@ -76,7 +76,7 @@
7676
<Import Project="$(ConcordSDKDir)Tools\bin\Microsoft.VSDebugger.targets" />
7777
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
7878
<PropertyGroup>
79-
<VsdConfigOutput>$(OutputPath)\PmipMyCallStack.vsdconfig</VsdConfigOutput>
79+
<VsdConfigOutput>$(OutputPath)\UnityMixedCallStack.vsdconfig</VsdConfigOutput>
8080
</PropertyGroup>
8181
<Target Name="IncludeVsdConfig" BeforeTargets="GetVSIXSourceItems" Condition="$(VSTarget) != '10.0'">
8282
<ItemGroup>

PmipMyCallStack.sln renamed to UnityMixedCallstack.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 14
44
VisualStudioVersion = 14.0.23107.0
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PmipMyCallStack", "PmipMyCallStack.csproj", "{9A899D87-5BFA-4886-B701-68C515F1371C}"
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityMixedCallStack", "UnityMixedCallStack.csproj", "{9A899D87-5BFA-4886-B701-68C515F1371C}"
77
EndProject
88
Global
99
GlobalSection(SolutionConfigurationPlatforms) = preSolution

PmipMyCallStack.vsdconfigxml renamed to UnityMixedCallstack.vsdconfigxml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ManagedComponent
44
ComponentId="408CB9BB-93B1-44A7-AA4E-88956AB421DB"
55
ComponentLevel="9995000"
6-
AssemblyName="PmipMyCallStack">
6+
AssemblyName="UnityMixedCallstack">
77

8-
<Class Name="PmipMyCallStack.PmipCallStackFilter">
8+
<Class Name="UnityMixedCallstack.UnityMixedCallstackFilter">
99

1010
<Implements>
1111
<InterfaceGroup>

PmipCallStackFilter.cs renamed to UnityMixedCallstackFilter.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Diagnostics;
43
using System.Globalization;
54
using System.IO;
65
using Microsoft.VisualStudio;
@@ -10,9 +9,9 @@
109
using Microsoft.VisualStudio.Shell;
1110
using Microsoft.VisualStudio.Shell.Interop;
1211

13-
namespace PmipMyCallStack
12+
namespace UnityMixedCallstack
1413
{
15-
public class PmipCallStackFilter : IDkmCallStackFilter, IDkmLoadCompleteNotification
14+
public class UnityMixedCallstackFilter : IDkmCallStackFilter, IDkmLoadCompleteNotification
1615
{
1716
private static List<Range> _rangesSortedByIp = new List<Range>();
1817
private static FuzzyRangeComparer _comparer = new FuzzyRangeComparer();
@@ -54,10 +53,10 @@ public DkmStackWalkFrame[] FilterNextFrame(DkmStackContext stackContext, DkmStac
5453
if (!_enabled) // environment variable not set
5554
return new[] { input };
5655

57-
return new[] { PmipStackFrame(stackContext, input) };
56+
return new[] { UnityMixedStackFrame(stackContext, input) };
5857
}
5958

60-
private static DkmStackWalkFrame PmipStackFrame(DkmStackContext stackContext, DkmStackWalkFrame frame)
59+
private static DkmStackWalkFrame UnityMixedStackFrame(DkmStackContext stackContext, DkmStackWalkFrame frame)
6160
{
6261
RefreshStackData(frame.Process.LivePart.Id);
6362
string name = null;

source.extension.vsixmanifest

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
33
<Metadata>
4-
<Identity Id="UnityPmipMyCallStack.mderoy.1bc395e8-c1ea-4a2d-8a37-19e7f0c302b9" Version="2.0" Language="en-US" Publisher="Jb Evain, Michael DeRoy, Jonathan Chambers" />
5-
<DisplayName>Unity Pmip My Call Stack</DisplayName>
4+
<Identity Id="UnityMixedCallstack.mderoy.1bc395e8-c1ea-4a2d-8a37-19e7f0c302b9" Version="2.0" Language="en-US" Publisher="Jb Evain, Michael DeRoy, Jonathan Chambers" />
5+
<DisplayName>Unity Mixed Callstack</DisplayName>
66
<Description xml:space="preserve">Visual Studio native debugger extension to help debug native applications using Mono. Originally developed by Jb Evain, Updated for Unity by Michael DeRoy and Jonathan Chambers</Description>
77
</Metadata>
88
<Installation>
@@ -12,6 +12,6 @@
1212
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
1313
</Dependencies>
1414
<Assets>
15-
<Asset Type="DebuggerEngineExtension" Path="PmipMyCallStack.vsdconfig"/>
15+
<Asset Type="DebuggerEngineExtension" Path="UnityMixedCallstack.vsdconfig"/>
1616
</Assets>
1717
</PackageManifest>

0 commit comments

Comments
 (0)