Collecting dumps; under the hood

Or how dotnet-dump collect works on Linux If you are trying to diagnose the behaviour of a mis-behaving application in production, one option is to use the dotnet-dump tool to get a memory dump of the application so you can study it offline. With a dump, you can get stack traces, look at all the threads and even dig through the entire heap offline. But how does dotnet-dump actually work? This post will try and summarize what I found as I tried digging through what dotnet dump collect does under the hood. ...

March 5, 2023 · Omair Majid

Using .NET with OpenSSL in CentOS Stream 9

Or, how to deal with error:0E07607: configuration file routines…. TLDR: # Only for .NET 5 or .NET Core 3.1 sudo dnf install -y compat-openssl11 export OPENSSL_CONF=/etc/pki/openssl11.cnf dotnet whatever Introduction How do you get .NET applications - whether the SDK/runtime itself or a self-contained application - working on RHEL 9? Generally, this should be a walk in the park. .NET is a cross platform runtime. It explicitly supports RHEL. There shouldn’t be any surprises here. ...

August 25, 2021 · Omair Majid

Build .NET and avoid prebuilts: Bootstrapping .NET in Fedora

Why Bootstrap? Compiling code is supposed to be straightforward: you run a compiler over the code and the compiler gives you back an executable program. But what do you do if there’s no compiler? That’s the dilemma .NET runs into in Fedora. Every release of .NET (Core) needs a recent version of a .NET (Core) SDK that can be used to build it. But that’s exactly what’s missing and what we are trying to build. ...

April 9, 2021 · Omair Majid

.NET Core Symbols on Fedora

Have you ever tried to debug a .NET application and seen errors saying debug information or debug symbols are not available? What are debug symbols? Where are they used? When would you need them? How do you get them? This post will try to resolve confusion by calling out things you absolutely need to know about them. What are debug symbols? Source code contains a lot of information that’s not strictly part of it’s functionality. It contains human readable names, including names of types, classes, methods and local variables. It contains lines of code in an order that (hopefully!) makes it possible to understand what is happening in order. ...

August 5, 2020 · Omair Majid

What is nuget restore doing?

Ever wonder what nuget or dotnet restore is doing? What feeds it using? Or what nuget.config it is using to find feeds? Turns out you can find out what nuget-related information dotnet restore by looking at the logs. Generally, dotnet restore is succinct. Restoring a HelloWorld project gives us little information about what’s going on: $ dotnet new console --no-restore The template "Console Application" was created successfully. $ dotnet restore Restore completed in 72.1 ms for /home/omajid/cliche/dotnet/HelloWorld/HelloWorld.csproj. If we add a nuget.config file, we still see little information. Not even enough to know if it’s even being used: ...

May 29, 2020 · Omair Majid

.NET Core is now available in Fedora

One exciting feature in the recent release of Fedora 32 is the inclusion of .NET Core in the default repositories. This makes Fedora 32 the first community Linux distribution with .NET Core available out of the box! In this post, lets take a quick look at using .NET Core on Fedora 32. We will cover installing .NET Core packages and building a container image. All using software only from Fedora! ...

May 28, 2020 · Omair Majid