https://github.com/acizmarik/sharpdetect
Dynamic analysis framework for .NET programs
https://github.com/acizmarik/sharpdetect
csharp dotnet dynamic-analysis framework
Last synced: 12 months ago
JSON representation
Dynamic analysis framework for .NET programs
- Host: GitHub
- URL: https://github.com/acizmarik/sharpdetect
- Owner: acizmarik
- License: apache-2.0
- Created: 2022-05-06T20:40:00.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T21:25:04.000Z (12 months ago)
- Last Synced: 2025-04-02T21:27:52.443Z (12 months ago)
- Topics: csharp, dotnet, dynamic-analysis, framework
- Language: C++
- Homepage:
- Size: 1.29 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# SharpDetect
[](https://github.com/acizmarik/sharpdetect/LICENSE.md)
[](https://github.com/acizmarik/sharpdetect/actions)
[](https://www.nuget.org/packages/SharpDetect)
A work-in-progress, experimental dynamic analysis framework for .NET programs.
### Prerequisites
#### Windows
* .NET 8 SDK
* Visual Studio 2022 Build Tools
* git
#### Linux
* .NET 8 SDK
* zlib1g-dev
* clang
* cmake
* git
### Build Steps
#### Windows Development Build
```bash
git submodule update --init --recursive
cd src
dotnet tool restore
dotnet cake --rid=win-x64
```
#### Linux
##### Alternative: Development Build
```bash
git submodule update --init --recursive
cd src
dotnet tool restore
dotnet cake --rid=linux-x64
```
##### Alternative: Testing Build
```bash
docker build -t sharpdetect/ubuntu-24.04
```
## Available Tools
* **Deadlock Analyzer** - Monitors all lock-related operations on `System.Threading.Monitor`. If a deadlock is detected, user receives a report with details (affected threads, stack traces).
* **Disposable Analyzer** - Monitors all allocations and disposals on reference types that implement `IDisposable`. If disposable type has not been disposed, user receives report with details (allocation thread, stack trace).
## State of Development
| Runtime | .NET | .NET Framework |
| --------- | ----------------------------- | ---------------------------- |
| win-x64 | :white_check_mark: | :x: |
| win-x86 | :x: | :x: |
| linux-x64 | :white_check_mark: | (not applicable) |
| linux-x86 | :x: | (not applicable) |
## License
This project is licensed under the [Apache-2.0 license](LICENSE), unless specified otherwise in a file header.