DynamoRIO / DynamoRIO/dynamorio
.NET (dotnet) does not run reliably under DynamoRIO
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
On Ubuntu 24.04 install and run .NET like this:
```
sudo apt-get install -y libicu74 wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --version latest
~/.dotnet/dotnet new console -o sample1
cd sample1
~/.dotnet/dotnet run
```
The output was `Hello, World!`.
Under DynamoRIO it fails in various ways.
On Graviton3 (AArch64) without `-fake_ctr_dic` it consistently failed with an error that mentioned `Object reference not set to an instance of an object`, but this is probably expected because of #5771.
On Graviton3 (AArch64) with `-fake_ctr_dic` it sometimes worked and sometimes gave a `Segmentation fault`.
On Intel it sometimes worked and sometimes gave: `/home/.../.dotnet/sdk/8.0.414/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(54,5): error MSB4184: The expression "[MSBuild]::GetTargetFrameworkIdentifier(net8.0)" cannot be evaluated. Exception has been thrown by the target of an invocation. [/home/.../sample1/sample1.csproj]`
(There is also an issue relating to .NET on Windows: #3211.)
Contributor guide
Research direction
Reproduce the sample on Ubuntu 24.04 using dotnet-install.sh and sample1/sample1.csproj, first without DynamoRIO and then with and without -fake_ctr_dic. Read the context in issues #5771 and #3211 before tracing the failures. Done means dotnet run behaves reliably without segmentation faults, null-reference failures, or MSBuild errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, ubuntu
- Domain
- devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100