←back to thread

.NET 10

(devblogs.microsoft.com)
484 points runesoerensen | 9 comments | | HN request time: 0.379s | source | bottom
1. ethin ◴[] No.45899130[source]
How is .NET debugging on the command line? I don't use IDEs that often and last time I tried making something serious with .NET I couldn't find any kind of reliable debugger that I could just spin up and get to grips with. And I wasn't exactly very keen on switching from VS build tools to full VS just to debug .NET apps.
replies(2): >>45899180 #>>45903455 #
2. formerly_proven ◴[] No.45899180[source]
Isn't the official .NET debugger only allowed to be used from Visual Studio and VSC? I recall Jetbrains had to remove debugging support from their IDE for a while due to that license. Also the whole kerfuffle around hot reloading first being added to .NET (Core) and then the code being deleted because it was supposed to be a VS-only feature.

These things to me seem like one faction in MSFT wants .NET to be an open platform and another faction wants it to be a sales funnel for Visual Studio.

replies(1): >>45900342 #
3. jve ◴[] No.45900342[source]
There is WinDbg which can debug CLR code, but that is Windows only.
replies(2): >>45900719 #>>45901504 #
4. trelane ◴[] No.45900719{3}[source]
> that is Windows only.

There are so many things that are like this in the .Net ecosystem.

Yeah, it runs on Linux. Kind of. Mostly.

As long as Microsoft is at the helm, I don't expect that to change.

5. MarkSweep ◴[] No.45901504{3}[source]
The .NET debugging extension (SOS) is not Windows only, it supports LLDB on Linux in addition to WinDbg:

https://learn.microsoft.com/en-us/dotnet/core/diagnostics/de...

replies(1): >>45902235 #
6. formerly_proven ◴[] No.45902235{4}[source]
License: https://www.nuget.org/packages/dotnet-debugger-extensions/9....

> a. Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the software documentation. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft�s privacy statement. Our privacy statement is located at https://aka.ms/privacy. You can learn more about data collection and its use in the software documentation and our privacy statement. Your use of the software operates as your consent to these practices.

> You may not work around any technical limitations in the software:

> * reverse engineer, decompile or disassemble the software, or otherwise to derive the source code for the software, except and only to the extent required by third party licensing terms governing use of certain open-source components that may be included with the software;

> ...

> * share, publish, rent, or lease the software; or

> * provide the software as a stand-alone offering or combine it with any of your applications for others to use, or transfer the software or this agreement to any third party.

So you are not, for example, allowed to ship this in your application's docker image, you are in fact not allowed to redistribute it at all. So if you wanted to get a .NET debugger into your staging environment, you are not actually allowed to, unless you directly install it then-and-there with nuget. (I'm assuming we're talking about any type of enterprise context, where any given application is touched by contractors or employees from n>1 legal entities, so you are always distributing/sharing/transferring/making available).

Ya ya, I know you shouldn't have debuggers near prod, chiseled images, living off the land, yaddayadda. Regardless, it's needed or at least the easiest way at times, to actually be able to debug an application in staging or similar scenarios.

Also I'm not sure if e.g. blocking outgoing connections of the telemetry (even if by blanket policy) would already technically violate the license.

replies(1): >>45903804 #
7. Nelkins ◴[] No.45903455[source]
There's an open source one by Samsung that is excellent, never had any issues with it: https://github.com/Samsung/netcoredbg
replies(1): >>45904051 #
8. MarkSweep ◴[] No.45903804{5}[source]
Yes, the restrictive license they place on their debugging components is frankly bizarre.
9. ethin ◴[] No.45904051[source]
I think I tried that (or a derivative of it, didn't know Samsung was the primary developer) that broke in some very very weird ways. Will try this version, thanks!