Open in app

Sign In

Write

Sign In

Christophe Nasarre
Christophe Nasarre

395 Followers

Home

About

Mar 10

From Metadata to Event block in nettrace format

The previous episodes started the parsing of the “nettrace” format used when contacting the .NET Diagnostics IPC server, initiate the protocol to receive CLR events and start to parse stacks. This last episode covers the Metadata and Event blocks. In terms of format, both Metadata and Event blocks share the…

Dotnet

9 min read

From Metadata to Event block in nettrace format
From Metadata to Event block in nettrace format
Dotnet

9 min read


Jan 15

Reading “object” in memory — starting with stacks

The previous episodes started the parsing of the “nettrace” format used when contacting the .NET Diagnostics IPC server and initiate the protocol to receive CLR events. It is now time to see how to get the payload of each “object” type, especially how stacks are stored. We have seen that…

Dotnet

6 min read

Reading “object” in memory - starting with stacks
Reading “object” in memory - starting with stacks
Dotnet

6 min read


Nov 27, 2022

Parsing the “nettrace” stream of (not only) events

The previous episodes explained how to contact the .NET Diagnostics IPC server and initiate the protocol to receive CLR events. It is now time to dig into the “nettrace” stream format! As the IPC command documentation states, the response to the CollectTracing command is followed by an Optional Continuation of…

Dotnet

3 min read

Parsing the “nettrace” stream of (not only) events
Parsing the “nettrace” stream of (not only) events
Dotnet

3 min read


Oct 23, 2022

CLR events: go for the nettrace file format!

As shown in the previous post, the processing of ProcessInfo diagnostic commands is easy because you send a request and read the different fields from the response. This is different if you want to receive events from the CLR via EventPipe. …

Dotnet

3 min read

CLR events: go for the nettrace file format!
CLR events: go for the nettrace file format!
Dotnet

3 min read


Sep 18, 2022

.NET Diagnostic IPC protocol: the C++ way

The previous post was describing the C# helpers to communicate with the diagnostic server in the CLR of a running .NET application. If, like me, you must write native code (i.e not in C#), you will need to implement the transport and protocol yourself. And, as you will see, it…

Dotnet

4 min read

.NET Diagnostic IPC protocol: the C++ way
.NET Diagnostic IPC protocol: the C++ way
Dotnet

4 min read


Jul 28, 2022

Digging into the CLR Diagnostics IPC Protocol in C#

Introduction As I explained during a DotNext conference session, the .NET CLI tools such as dotnet-trace, dotnet-counter or dotnet-dump are communicating with the CLR thanks to Named Pipe on Windows and Domain Socket on Linux. Within the CLR, a diagnostic server thread is responsible for answering requests. A communication protocol allows…

Csharp

4 min read

Digging into the CLR Diagnostics IPC Protocol in C#
Digging into the CLR Diagnostics IPC Protocol in C#
Csharp

4 min read


Jun 9, 2022

Troubleshooting CPU and exceptions issues with Datadog toolbox

Introduction With the new 2.10 release of the Datadog .NET Tracer and Continuous Profiler available, it is time to update some investigation workflows I already introduced. New features have been added to help you diagnose performance issues in your .NET applications: Linux support! Code Hotspots: allow you to automatically navigate from…

Csharp

6 min read

Troubleshooting CPU and exceptions issues with Datadog toolbox
Troubleshooting CPU and exceptions issues with Datadog toolbox
Csharp

6 min read


Mar 14, 2022

Value types and exceptions in .NET profiling

Here comes the end of the series about .NET profiling APIs. This final episode describes how to get fields of a value type instance and how to deal with exceptions. Getting fields of a value type instance The case of a value type is very similar to a reference type except that the address you receive points…

Profiling

4 min read

Value types and exceptions in .NET profiling
Value types and exceptions in .NET profiling
Profiling

4 min read


Jan 28, 2022

Troubleshooting .NET performance issues with Datadog toolbox

Introduction The beta of Datadog .NET Continuous Profiler is available! This is a great opportunity to show how to use the different tools provided by Datadog to troubleshoot .NET applications facing performance issues. Tess Ferrandez updated her famous BuggyBits application to .NET Core. Among the different available scenarios, let’s see how…

Csharp

7 min read

Troubleshooting .NET performance issues with Datadog toolbox
Troubleshooting .NET performance issues with Datadog toolbox
Csharp

7 min read


Dec 18, 2021

Accessing arrays and class fields with .NET profiling APIs

Introduction After getting basic and strings parameters, it is time to look at arrays and reference types. Accessing managed arrays You check against null array parameter the same way as for string: The ELEMENT_TYPE_SZARRAY applies to single dimension arrays including jagged arrays. ELEMENT_TYPE_ARRAY is used for matrice : Since arrays are reference…

Profiling

5 min read

Accessing arrays and class fields with .NET profiling APIs
Accessing arrays and class fields with .NET profiling APIs
Profiling

5 min read

Christophe Nasarre

Christophe Nasarre

395 Followers

Loves to understand how things work (MVP Developer Technologies)

Following
  • Kevin Gosse

    Kevin Gosse

  • Jean-Philippe Durot

    Jean-Philippe Durot

  • Eugene Zhirov

    Eugene Zhirov

  • LEOCADIE Grégory

    LEOCADIE Grégory

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech