|
1 | 1 | Pmip My Call Stack
|
2 | 2 | =====
|
3 | 3 |
|
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. |
5 | 5 |
|
6 | 6 | Mono doesn't generate debug symbols that Visual Studio understands for jitted functions.
|
7 | 7 |
|
8 | 8 | As a result, Visual Studio can not show anything meaningful for managed stack frames.
|
9 | 9 |
|
10 | 10 | 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
|
11 | 11 |
|
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. |
13 | 13 |
|
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). |
15 | 15 |
|
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. |
17 | 17 |
|
18 | 18 | ## Before
|
19 | 19 |
|
20 |
| - |
| 20 | + |
21 | 21 |
|
22 | 22 | ## After
|
23 | 23 |
|
24 |
| - |
| 24 | + |
25 | 25 |
|
0 commit comments