kkokosa / tune Goto Github PK
View Code? Open in Web Editor NEWThe Ultimate .NET Experiment
License: GNU General Public License v3.0
The Ultimate .NET Experiment
License: GNU General Public License v3.0
By using TraceEventSession.IsElevated()
check whether current process has rights to configure and use ETW sessions. Warning should be provided to the user if it is not.
When I'm trying test code that depend on System.Linq
I'm getting error:
[02:16:29.522] Running started.
[02:16:29.800] Script parsed.
[02:16:29.853] Script compilation into assembly assemblyName_636777153898003530.
[02:16:31.283] Script compilation failed: (3,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
(21,20): error CS0103: The name 'Enumerable' does not exist in the current context
(31,31): error CS1061: 'List<Test>' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'List<Test>' could be found (are you missing a using directive or an assembly reference?)
(37,31): error CS1061: 'List<Test>' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'List<Test>' could be found (are you missing a using directive or an assembly reference?).
[02:16:31.291] System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
w Tune.Core.DiagnosticAssembly.Execute(String argument) w D:\a\1\s\src\Tune.Core\DiagnosticAssembly.cs:wiersz 54
w Tune.UI.MVVM.ViewModels.MainViewModel.<RunAsync>d__96.MoveNext() w D:\a\1\s\src\Tune.UI.ViewModels\ViewModels\MainViewModel.cs:wiersz 285
[02:16:31.295] Running ended with success False
@kkokosa Konrad, I posted a comment here, but since there is no response within two days I opened an issue.
Tune 0.2 from your OneDrive is crashing at startup with the following error:
System.UnauthorizedAccessException
in Microsoft.Diagnostics.Tracing.Session.TraceEventSession.InsureStarted(EVENT_TRACE_PROPERTIES*)
in Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.Guid, Microsoft.Diagnostics.Tracing.TraceEventLevel, UInt64, Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions)
in Tune.UI.MainView.ThreadCallback(System.Object)
in System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
in System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
in System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
in System.Threading.ThreadPoolWorkQueue.Dispatch()
I'm under Windows 10 (x64).
I would like to use this tool for my .NET experiments since I can't find a good alternative to it. 😅
What is that?
README didn't answer this question currently.
Just to be on top of the newest C# fancy tools.
Solution should be layered into UI, core engine and other auxiliary projects.
Offer integrations (optional) with the VMMap tool to get process layout, like https://github.com/Alois-xx/MemAnalyzer/tree/master/MemAnalyzer/VMMap does.
I try execute sample code from Open file and I get error:
Merge operation failed return code 0x2
Script execution failed: System.ApplicationException: Merge operation failed return code 0x2
w Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Merge(String[] inputETLFileNames, String outputETLFileName, TraceEventMergeOptions options)
w Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MergeInPlace(String etlFileName, TextWriter log)
w Tune.Core.Collectors.ClrEtwCollector.Stop() w C:\TestAndOtherStuff\TUNE\Tune.Core\Collectors\ClrEtwCollector.cs:wiersz 62
w Tune.Core.Collectors.ClrEtwCollector.Dispose() w C:\TestAndOtherStuff\TUNE\Tune.Core\Collectors\ClrEtwCollector.cs:wiersz 159
w Tune.Core.DiagnosticAssembly.Execute(String argument) w C:\TestAndOtherStuff\TUNE\Tune.Core\DiagnosticAssembly.cs:wiersz 75
As Tune requires symsrv.dll
and dbghelp.dll
files from Debugging Tools for Windows, building it requires them to be installed (and xcopies them as a post-build event currently). This is both inconvenient for developers wanting to contribute (or just build and look around) and for continuous integration possibilities (and in fact stops issue #20).
The solution would to be include those two files. Unfortunately, this will require maintaining it now (by taking care of updating to newer version), but I do not see better workaround.
There is a problem with disassembling generic methods - seems like HotColdInfo is not available (code used from SharpLab to be checked).
I've donwloaded realese version of app from https://1drv.ms/u/s!ApZOZuEUCC2DjZhc0vmj9P-6JCmqOQ. When I tried to execute sample code and I get the error:
Message:
Method 'get_ReferenceDirectiveMap' in type 'Microsoft.CodeAnalysis.CSharp.CSharpCompilation' from assembly 'Microsoft.CodeAnalysis.CSharp, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
StackTrace:
at Tune.Core.DiagnosticEngine.Compile(String script, DiagnosticAssemblyMode mode, DiagnosticAssembyPlatform platform)
at Tune.UI.MainView.RunAsync(Object parameters) in C:\Projects\Tune\Tune.UI\MainView.cs:line 224
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
Add recording of the CPU hardware counters (PMC) along with ETW data and visualize it on the graph.
Currently, script references only mscorlib while it would be very nice to have possibly to reference any additional assembly.
To make it fully open source, dependency from DevExpress commercial controls should be removed.
Making possible to take memory snapshots during script run and/or invoke it explicitly from the script by any kind of Script.DumpMemory()
method.
Introduce Azure Pipelines to build releases. This is important as it will allow people to use Tune without a need to compile it.
Add a Performance Counters source for analysis.
Integrate CI/CD pipeline with AppVeyor to create releases automatically. It requires #2 issue resolving to not depend on any commercial libraries.
When I try handle bug from #12 I find another bug. When I switch from x64 to x86 I get:
System.BadImageFormatException: Nie można załadować pliku lub zestawu „assemblyName_636456428965025197, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”. Ten zestaw został skompilowany dla innego procesora.
w System.Reflection.RuntimeAssembly.nLoadImage(Byte[] rawAssembly, Byte[] rawSymbolStore, Evidence evidence, StackCrawlMark& stackMark, Boolean fIntrospection, SecurityContextSource securityContextSource)
w System.Reflection.Assembly.Load(Byte[] rawAssembly)
w Tune.Core.DiagnosticAssembly..ctor(DiagnosticEngine engine, String assemblyName, CSharpCompilation compilation) w C:\TestAndOtherStuff\TUNE\Tune.Core\DiagnosticAssembly.cs:wiersz 47
w Tune.Core.DiagnosticEngine.Compile(String script, DiagnosticAssemblyMode mode, DiagnosticAssembyPlatform platform) w C:\TestAndOtherStuff\TUNE\Tune.Core\DiagnosticEngine.cs:wiersz 46
w Tune.UI.MVVM.ViewModels.MainViewModel.d__96.MoveNext() w C:j\TestAndOtherStuff\TUNE\Tune.UI.ViewModels\ViewModels\MainViewModel.cs:wiersz 281
Somewhere AssemblyPlatform is not get properly?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.