Advertisement · 728 × 90

Posts by Kevin Gosse

Post image

I'm developing a bridge to allow agents to interact with my Windbg session. I tested it with an old dump, the agent ran a bunch of commands and immediately crashed Windbg. So now we're debugging Windbg.

1 week ago 7 0 0 0
Preview
.NET R&D Digest (March, 2026) This issue includes bits (or I would rather say bytes) of AI, bits of software development, operating systems, web, diagnostics, performance, C++, C#,  and of course .NET and .NET Internals.

New issue of .NET R&D Digest is here! Thx to
@simonwillison.net, @birgitta410.bsky.social, @kief.com, @lemire.bsky.social, @kevingosse.net, @andrewlock.bsky.social, @meziantou.net, @stevesanderson.bsky.social & other authors for their g8 content!

#dotnet

olegkarasik.wordpress.com/2026/04/03/n...

2 weeks ago 7 3 0 0
Post image

I'm still experimenting with exactly how to include it in my workflow, but Claude is so good at reverse engineering that it's really a game changer for advanced debugging.

Everything is open-source if you're fluent in assembly code.

3 weeks ago 4 0 1 0

Where does the .NET community live nowadays? Because apparently posting a technical article on reddit is considered self-promotion and forbidden except on Saturday.

Honestly I'm speechless.

1 month ago 6 0 2 0

Oh I see my wording was ambiguous. It doesn't "use" 2 TB, it just reserves it.

1 month ago 1 0 0 0

I'm confused about what in this article would cause this reaction.
If it's because of the 2 TB, you might want to re-read the explanation about reserved memory.

1 month ago 0 0 0 0
Preview
Writing a .NET Garbage Collector in C#  - Part 9: Frozen segments and new allocation strategy Using NativeAOT to write a .NET GC in C#. In this part, we look at what the GC must do to properly handle frozen segments, and we change the allocation strategy to make it more efficient.

Have you ever noticed that a simple .NET Core applications on 64-bit uses more than 2TB of virtual memory?

In a new episode of the series "writing a .NET garbage collector in C#", we discover the kind of problem that it intends to solve: minidump.net/writing-a-ne...

1 month ago 64 5 3 3

It's exactly for that, yes 🙂

"58.8% left for the month" doesn't speak to me. "51/74 requests used for today" does.

1 month ago 0 0 0 0

I wish it would run automatically from Copilot, but Copilot-CLI doesn't support global hooks yet. Maybe in the future.

1 month ago 0 0 0 0
Preview
GitHub - kevingosse/copilot-usage: Command-line tool showing current usage and remaining quota for Copilot plan Command-line tool showing current usage and remaining quota for Copilot plan - kevingosse/copilot-usage

It's a simple CLI tool that tells me how many more requests I can use for the day without worrying, along with a few additional stats.

You can install it with cargo:
cargo install copilot-usage

Source code is available on github: github.com/kevingosse/c...

1 month ago 5 1 1 1
Advertisement
Post image

I like Copilot CLI but the billing model stresses me out a little. Because there's no hourly or daily limit, I worry that I might run out of requests before the end of the month, and use them very conservatively. Then I end the month with a lot of unused quota.

So I built a tool.

1 month ago 4 1 2 0
Post image

I'm trying GPT-5.4 and scratching my head when seeing the generated code.

What reasoning process could lead to explicitly initializing to null a property, _and_ using the null-forgiving operator.

1 month ago 1 0 4 0
Post image

The tool can be installed from Winget:

winget install KevinGosse.ClipPing

Or directly from github: github.com/kevingosse/C...

I rewrote it entirely in C++ because RAM isn't cheap anymore.

1 month ago 2 0 0 0
Video

ClipPing got a major update!

The tool displays a visual notification whenever the content of the clipboard changes, for all of you who are tired of ctrl+c not working.

I added configurable overlays, and some QoL improvements (like automatically starting the tool with Windows).

1 month ago 3 2 1 0
Post image

It's crazy that Windows will post notifications for the most unsignificant stuff (like the unfamous "Windows Defender Antivirus did not find any threats"), but I had to check my event viewer for completely unrelated reasons to randomly discover that one of my HDDs is dying.

1 month ago 8 1 1 0
Preview
Writing a .NET Garbage Collector in C#  - Part 8: Interior pointers Using NativeAOT to write a .NET GC in C#. This time, we look at what interior pointers are and why they’re so difficult for the GC.

I published part 8 of my "Writing a .NET Garbage Collector in C#" series. The subject this time is interior pointers: what are they, and why are they so challenging for the GC.

minidump.net/writing-a-ne...

1 month ago 9 4 0 0
Preview
dotnet tool install shouldn't use local config for global tools · Issue #53126 · dotnet/sdk I ran into this unexpected situation where I tried to install a global tool (dotnet tool install -g xxx) but it failed because I was in a project directory which had a nuget.config pointing to an i...

Opened an issue: github.com/dotnet/sdk/i...

1 month ago 1 0 0 0
Advertisement
Post image

I'm surprised that "dotnet tool install -g" uses the local nuget config, if any.
For local tools, I get it. For global tools, I would expect it to always use the userprofile config. Sounds a bit dangerous? Like, if you run the command from your Downloads or temp folder and you have a leftover file.

1 month ago 2 0 2 0
Post image Post image

Pro-tip: even if it's tempting, resist the urge to argue with copilot

1 month ago 3 0 1 0
Preview
Too good to be true: an unexpected profiler trap Sometimes the most convincing performance gains deserve a second look. A reminder that profiling data can be more subtle than it first appears.

I got "tricked" by PerfView when using it to measure the effectiveness of my optimizations, so I decided to write about it: minidump.net/an-unexpecte...
It's not specific to PerfView though, in theory this could happen with any profiler.

1 month ago 8 5 1 0
Preview
Writing a .NET Garbage Collector in C#  - Part 7: Marking handles Using NativeAOT to write a .NET GC in C#. In the seventh part, we scan and update the handles during the mark phase of the garbage collection.

I published a new article in my "Writing a .NET GC in C#" series. This time, we implement a better storage for the handles, and we properly mark them during garbage collection. We also see why DependentHandles are annoying to deal with.

minidump.net/writing-a-ne...

2 months ago 4 1 0 0
Preview
Writing a .NET Garbage Collector in C#  - Part 6: Mark and Sweep Using NativeAOT to write a .NET GC in C#. In the sixth part, we start implementing the mark phase of the garbage collection.

After a long wait, I've finally published the sixth part in my "Writing a .NET Garbage Collector in C#" series. Today, we start implementing mark and sweep.

minidump.net/writing-a-ne...

2 months ago 11 6 0 0
Video

I learned programming on a 80286 with Qbasic. Out of curiosity I checked how this demo would run on that hardware (~1500 cycles/s in dosbox).

Way too slow in QB 1.1 (interpreted), even in CGA. Much better in QB 4.5 (compiled), though it would need some double-buffering to fix the flickering.

3 months ago 1 0 0 0

If you missed this video, I strongly recommend watching it. It's a great introduction to 3D graphics, short and easy to understand. I had a lot of fun reimplementing it in Winforms and text mode.

3 months ago 2 0 1 0
Advertisement
Preview
Investigating a deadlock in Visual Studio A short investigation that showcases one of the most common problem faced when writing a profiler.

Today I ran into a deadlock in VS2026. I debugged it, and it turned out to be a common issue you may run into when writing a profiler.
I wrote a short article about it: minidump.net/investigatin...

4 months ago 8 4 0 0

Visual Studio 2026 18.1.1 has been released. I strongly recommend upgrading if you're using ReSharper, as it fixes an issue that was making startup significantly slower.

Thanks a lot to the VS team for their reactivity!

4 months ago 5 2 0 0
Preview
Creating a .NET CLR profiler using C# and NativeAOT with Silhouette In this post I look at how to create a simple .NET profiler. But instead of using C++, the profiler uses C# and NativeAOT with the Silhouette library

Blogged: Creating a .NET CLR profiler using C# and NativeAOT with Silhouette

andrewlock.net/creating-a-d...

In this post I look at how to create a simple .NET profiler. But instead of using C++, the profiler uses C# and NativeAOT with @kevingosse.net's Silhouette library

#dotnet

4 months ago 13 3 0 0
Preview
From the backblaze community on Reddit Explore this post and more from the backblaze community

Anyway, if you're using their backup client, you'll probably want to know that they have hidden exclusion rules, and they exclude .git folders by default: www.reddit.com/r/backblaze/...

4 months ago 3 0 0 0

I like the peace of mind that @backblaze.bsky.social
is offering, especially after my recent SSD crash. But god, their support is beyond bad. I've contacted them twice, and both times I had to solve the issue myself after a completely unhelpful exchange.

4 months ago 2 0 1 0

That sounds crazy but honestly I've seen crazier stuff. I'll give it a try, thanks.

4 months ago 0 0 0 0