38

visualizing stack and heap with SharpLab

 5 years ago
source link: https://www.tuicool.com/articles/hit/ryUjyy2
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

When I wanted to look at the IL of the C# code I wrote I used to create a new console application in visual studio and write the code and build it and view the DLL with ILSpy or dotPeek .

These days I’m using LINQPad to view the IL quickly.

Here is the alternative to that hectic setup, Sharplab .

SharpLab is developed by Andrey Shchekin . SharpLab is a similar tool you can use to Run, De-compile (C#, IL, JIT Asm) and visualizing syntax trees. You can also switch the C# language to whatever you want in SharpLab.

And the good thing about SharpLab is that you don’t need any tools except a web browser.

Visualizing stack/heap and boxing

Apart from viewing IL or viewing de-compiled C# code. SharpLab recently added a new feature to visualize .NET stack/heap and boxing.

Once done with writing or creating an object, you could just use Inspect.MemoryGraph(obj) statement to see if it is on stack/heap. You can also see the boxing happened on the objects.

This is how it looks like.

F7FJ3iR.png!web

Viewing structure of object in Memory (heap)

If you want to view the structure of an object in the memory, you can use Inspect.Heap(object) statement.

Let’s inspect a string value in the memory and here it is .

FzMnq22.png!web

Viewing structure of stack value

You can view structure of any stack value with Inspect.Stack(value) statement.

Lets view a value structure on stack

ee222e2.png!web

value.Inspect()

This is an alternative to write Console.WriteLine to view a value in the output window in SharpLab. Try it out.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK