-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Match xplat event source conditions #56435
Conversation
I'm personally not super excited about fixing it this way, as I think it should be possible to make managed implementation provider-agnostic without the need for constant + preprocessor directives: ETW, LTTng or Dummy. However, since I don't know the rationale, I am deferring to this naive fix. :) |
just tested using preview 6 and this pull request as patch: this fixes the FreeBSD segfault issue! |
@Thefrank, thanks for confirming. I was reading about "how to instrument dtrace probes" from the perspective of requirements in coreclr and mono. I also looked into dtrace support on other (non SunOS-likes) systems such as FreeBSD, and Windows (https://github.com/microsoft/DTrace-on-Windows). I think after 6.0 is released, we can discuss it with .NET Tracing team and implement an additional provider for Dtrace, that will help platforms which primarily prefer Dtrace over LTTng or other solutions (illumos, FreeBSD etc.). |
The change looks good to me, but I want to make sure that this isn't regressing LTTng support on accident. (I don't think it is, but we don't have an automated test for that that I'm aware of) |
* add terminfo-db to FreeBSD package requirements * runtime can use terminfo under FreeBSD but only with this additional package * from feedback: dotnet/runtime#55152 (comment) * fix typo, bump FreeBSD12, remove lttng-ust from it lttng-ust removable depends on dotnet/runtime#56435 merge * lttng-ust needs to stay * add FreeBSD13, add support for FreeBSD ABI also: use -j $JOBS during build while we are here
Would you like me to add a test for it? AFAICT:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you like me to add a test for it?
We've been wanting to add a test for LTTng for a while. If you create one, I will review it 😄.
I don't see a reason to delay this PR on that though. I'm confident that this shouldn't affect LTTng functionality based on the reasons you laid out. I'll still do some manual testing due to where we are in the release cycle though.
CC @brianrob are you aware of any platforms that will be excluded by this change that support LTTng? As far as I can tell, there aren't any in the support matrix. |
CoreCLR has only ever supported LTTng on Linux. At one point, I saw some changes going into the LTTng source base to potentially support OSX, but I don't know where that is at this point. If we did want to support that, we'd need to make more changes to the runtime anyway, so this seems totally fine. |
Thanks for the contribution @am11 😄 |
FreeBSD uses LTTng but its not in the official matrix. |
Out of curiosity, does DTrace use UDSTs (User Defined Static Tracepoints) to hook into user code? |
From OpenDTrace v1.0 docs: https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-924.pdf
|
Cool! Good to know. I believe we instrumented most of the native runtime events to be USDT (or UDST) back when we did the LTTng bring up, so theoretically DTrace should already work with a good chunk of the GC and JIT events. Managed events are a whole different discussion though. |
* origin/main: (64 commits) [wasm][debugger] Create test Inherited Properties (dotnet#56754) Mark new test as incompatible with GC Mark4781_1GcStressIncompatible (dotnet#56739) Ensure MetadataEnumResult is sufficiently updated by MetaDataImport::Enum (dotnet#56756) [mono] Remove gdb xdebug and binary writer support, it hasn't worked in a while. (dotnet#56759) Update windows-requirements.md (dotnet#56476) Update doc and generic parameter name for JsonValue.GetValue (dotnet#56639) [wasm][debugger] Inspect static class (dotnet#56740) Fix stack overflow handling issue in GC stress (dotnet#56733) Use ReflectionOnly as serialization mode in case dynamic code runtime feature is not supported (dotnet#56604) Move Windows Compat pack to NuGet pack task (dotnet#56686) Fix build error when building some packages (dotnet#56767) Simplify JIT shutdown logic in crossgen2 (dotnet#56687) Fix race in crossdac publishing with PGO (dotnet#56762) Add DictionaryKeyPolicy support for EnumConverter [dotnet#47765] (dotnet#54429) Use ComWrappers in some Marshal unit-tests and update platform metadata (dotnet#56595) Set `DisableImplicitNamespaceImports_Dotnet=true` to workaround sdk issue (dotnet#56744) Make sure ServerGCHeapDetails is up to date (dotnet#56056) [libraries] Reenable System.Diagnostics.DiagnosticSorce.Switches.Tests on mobile (dotnet#56737) Disable failing arm64 win10 Graphics.FromHdc tests (dotnet#56732) Match xplat event source conditions (dotnet#56435) ...
runtime/src/coreclr/clrdefinitions.cmake
Lines 123 to 125 in 2a3141a
COMPlus_ConsistencyCheck=1
(rather than just theid != 0
assertion failure).Fixes #56079