Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-04Update download link for PerfView tool (#28822)David Shulman
The PerfView tool has been moved to open-source. Updating the documentation link to point to the most recent place for downloading the tool.
2018-02-23Update debugging with VS code instructions (#27384)William Godbe
* Update debugging with VS code instructions For https://github.com/dotnet/corefx/issues/21557. CC @tmds * Change wording
2018-01-02lldb install linkDan Moseley
2018-01-02Show how to find libsosplugin.soDan Moseley
2017-11-21Update core dumps docs (#25398)Santiago Fernandez Madero
* Update core dumps docs * Change quotes.
2017-09-26Update build to clang/llvm 3.9Mike McLaughlin
Update scripts, docs and build pipeline docker images to clang/llvm/lldb 3.9
2017-09-23Revert "Update build to clang/llvm 3.9 (#24177)"Jan Vorlicek
This reverts commit 21e008a3401a4d76ef5123df8f072e9f3c7823bb.
2017-09-22Update build to clang/llvm 3.9 (#24177)Mike McLaughlin
Update scripts, docs and build pipeline docker images to clang/llvm/lldb 3.9
2017-07-19Add documentation for Dumpling (#22441)Eric Mellino
2017-07-08Update windows-instructions.md (#21992)Cristian Pop
2017-04-28Clarify lldb and libsosplugin requirements for core debuggingEric Mellino
2017-04-28Add a missing word.Eric Mellino
2017-04-28Add core dump debugging instructionsEric Mellino
2016-11-22Add linux debugging instructions (#13867)Alex Perovich
* Add linux debugging instructions * s/linux/unix
2016-11-09Adding new build/packaging documentation (#13026)Cristian Pop
* Adding new APIs not part of NetStandard * Adding package debugging.
2016-10-29Overhaul System.Net library loggingStephen Toub
This PR overhauls how logging is accomplished in the System.Net libraries. There are a few problems with the existing solution: 1. In the original sources, logging was split across a GlobalLog class and a Logging class. Global-related tracing went to GlobalLog, and library-specific tracing went to Logging. When the sources were moved to corefx, this evolved into multiple EventSource-based types, most of which were in Common and were then src-included into each System.Net assembly. This has a significant problem, though, which is that the name/Guid identity of an EventSource can only exist once in a process, and subsequent EventSource instances with the same identity fail. This means that whichever assembly ends up logging something first wins, and all other tracing from other System.Net assemblies ends up being lost. 2. The split also may have made sense when all components shared the same GlobalLog, but now that GlobalLog is included as a unique EventSource instance in each assembly, it's no longer global. This means that we're not only loading multiple EventSources unnecessarily (each has its own costs), but we're also duplicating logging, as some logging is done to one or the other, but some logging is done to both. 3. Due to sharing the Logging class, which evolved into an EventSource-based type, many logging calls had to include which component they came from as an enum value, leading to bloating at the call sites. 4. Additionally, many logging operations included the name of the method in which the calling was being done, which meant both longer call sites as well as stale values as members got renamed over time. 5. Call sites ended up getting fairly long due to lots of string concatenation operations and other manipulations in the logging call. This also then led to most call sites needing to be guarded behind checks for IsEnabled, leading to lots of code at every call site and obscuring the actual information being traced. 6. An additional requirement that got added with the move to corefx was that certain failure conditions should both Debug.Fail and do tracing, leading to some tracing operations taking upwards of 10 lines of code. All of these issues are addressed by this PR. - Each System.Net assembly that needs to log now loads a single NetEventSource type for doing logging, each with its own identity. - That implementation is split across a common, partial NetEventSource.Common.cs file used by all such assemblies, and then a per-assembly partial NetEventSource.AssemblyName.cs file used by the individual assembly. The former file contains most of the logging implementation. The latter files typically contain just the partial class declaration along with the [EventSource] attribute that gives that assembly's NetEventSource its unique identity / name. - The logging operations in NetEventSource.Common.cs use a variety of relatively-recent language enhancements to improve the logging. Each operation uses a [CallerMemberName] so that the call sites don't need to specify the caller. FormattableString is used so that call sites can use string interpolation while still providing the logging implementation the flexibility to format the individual components in a desired fashion (e.g. IntPtrs are formatted as hex, SafeHandles are rendered in a way that includes their name+hashcode+handle, etc.), along with a mechanism that allows individual libraries to add additional formatting rules. Each operation allows the this reference (or another this-like context object) to be passed in, to simply identify the source of the call (in concert with the caller member name). A debug-only mechanism is included in the tracing to help find potential perf issues due to misuse of the logger. Etc. - A Fail logging operation is included that both traces and does a Debug.Fail. With these changes, most call sites are greatly simplified. Some examples: Before: ```C# if (GlobalLog.IsEnabled) { GlobalLog.AssertFormat("ContextAwareResult#{0}::ContextCopy|Called on completed result.", LoggingHash.HashString(this)); } Debug.Fail("ContextAwareResult#" + LoggingHash.HashString(this) + "::ContextCopy |Called on completed result."); ``` After: ```C# NetEventSource.Fail(this, "Called on completed result."); ``` Before: ```C# if (NetEventSource.Log.IsEnabled()) NetEventSource.Enter(NetEventSource.ComponentType.Http, this, ".ctor", handler); ``` After: ```C# NetEventSource.Enter(this, handler); ``` Etc. In addition to fixing up all of the event sources, I of course also fixed up all usage in order to clean up the call sites. However, this was a rather mechanical change: I did not remove existing logging (other than duplication) nor did I add new logging. At some point, we should review the actual logging being done to determine what's missing and what's not needed. I also did not revise the additional existing events on the sockets and security event sources, but we may want to remove those (or some of those) in favor of just using the shared events.
2016-06-14Update windows-instructions.mdCristian Pop
The debugging extension is now copied in the test folder.
2016-06-01Merge pull request #9010 from CIPop/docCristian Pop
Adding image example for PerfView collection.
2016-06-01Adding image example for PerfView collection.Cristian Pop
2016-05-25Update tests to use NETCoreApp1.0 monikerEric St. John
Requires https://github.com/dotnet/buildtools/pull/751 This makes all the tests resolve using NETCoreApp1.0 instead of DNXCore50. I've removed the netstandard1.6 import since that is no longer needed. I've also removed the workarounds from tests that were targeting netcoreapp1.0 on their own. For restore compat I've added an DNXCore50 import to every test project. These can be removed once test-runtime packages are updated to target NETCoreApp1.0. I've updated all the test scripts which were assuming DNXCore50 as well as docs which referred to this path.
2016-01-20Adding logman instructions and System.Net new providers.Cristian Pop
2015-11-03Windows advanced debugging documentation.Cristian Pop