Fix bpmd on Windows by implementing IDataTarget2 which allows the DAC to allocate a JIT notification
table which is empty on Windows. Issue https://github.com/dotnet/diagnostics/issues/584.
Add SetRuntimeLoadedCallback lldb service for bpmd
Allow bpmd to work before coreclr is loaded. Issue https://github.com/dotnet/diagnostics/issues/15
Upgrade to symstore 1.0.55801
Set/reset symbol server path anytime .sympath changes
Add lldb h files to plugin project
Add bpmd tests. Update readme and help docs
* Fix flaw in configuration parser error detection for negative clauses
* Logging paths can't have wildcards, but runtime specifiers can and this is used in our log names. In that case I resorted to use <Major.Minor.Patch> as the version for the log while preserving old behavior. That way xUnit still displays the full arg list for test disambiguation, but the logs only contain valid file names
Use the AzDO pipeline reporter for xUnit style tests:
- This adds a per test report per run.
- Reports are now seen in the tests tab of a pipeline run as well as a tally in GitHub
Adds the following options to the test helper condition attributes:
* Contains(string, string)
* StartsWith(string, string)
* EndsWith(string, string)
And adds argument validation that throws exception - to prevent any more tests to be skipped silently.
* Wait for process exit independently of waiting for stream flushing
Before, the ProcessRunner waited for the process completion as well as stream
buffer flushing for stdout and stderr. This is problematic if the process
it ran dies, but its spawned child processes keep the defunct's standard
streams alive by redirecting to them. We have had no way of harvesting
the children, so this process hung the runner.
After this change, we wait for the spawned process to die. As soon as that happens,
we give the pipes a grace period of 15 seconds to flush, after which we assume
the process is dead. This has the shortcoming of two potentially problematic
situations:
- We've potentially left an unobserved aggregate exception unobserved that will throw
on the finalizer thread once the tasks get collected in exceptional cases.
- This might leak threadpool threads.
This reverts commit 0efe77744d.
Not ready for the new CentOS 7 image with lldb 9.0 and the cross build images fail because build-native.sh needs to use clang 9.0 and the alpine image fails just building managed code with:
##[error].packages/microsoft.build.tasks.git/1.0.0-beta2-19270-01/build/Microsoft.Build.Tasks.Git.targets(16,5): error : The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.
at LibGit2Sharp.Core.NativeMethods.git_buf_free(GitBuf buf)
at LibGit2Sharp.Core.Proxy.git_buf_free(GitBuf buf)
at LibGit2Sharp.Core.Handles.GitBuf.Dispose()
at LibGit2Sharp.Core.Proxy.ConvertPath(Func`2 pathRetriever)
at LibGit2Sharp.Core.Proxy.git_repository_discover(FilePath start_path)
at LibGit2Sharp.Repository.Discover(String startingPath)
at Microsoft.Build.Tasks.Git.GitOperations.LocateRepository(String directory) in /_/src/Microsoft.Build.Tasks.Git.Operations/GitOperations.cs:line 26
at Microsoft.Build.Tasks.Git.RepositoryTasks.LocateRepository(LocateRepository task) in /_/src/Microsoft.Build.Tasks.Git.Operations/RepositoryTasks.cs:line 58
/datadisks/disk1/workspace/_work/1/s/.dotnet/sdk/3.0.100/Roslyn/Microsoft.Managed.Core.targets(102,5): error : SourceRoot items must include at least one top-level (not nested) item when DeterministicSourcePaths is true [/datadisks/disk1/workspace/_work/1/s/src/SOS/lldbplugin.tests/TestDebuggee/TestDebuggee.csproj]
* Switch to a static function on Stopwatch to avoid multi-threading
concerns with Stopwatch.Elapsed
* Change tool name when writing memory graph
* Add explicit null check on gcDumpSession to catch NRE in the event
EventPipe failed to connect.
* Add comment in README about future of code shared with PerfView
* Refactor to remove wrapping task for type flush session
* make EventPipeSession disposable to ensure stream is closed in case of
exception in the reader
* add using statements around source.Process calls
* add additional logging to verbose log
* Add additional logging
* add timeout option
* Remove unnecessary using statements
* Update src/Tools/dotnet-gcdump/CommandLine/CollectCommandHandler.cs
Co-Authored-By: Noah Falk <noahfalk@users.noreply.github.com>
* Update src/Tools/dotnet-gcdump/DotNetHeapDump/README.md
Co-Authored-By: Noah Falk <noahfalk@users.noreply.github.com>
* Fix weird unintended docs change
* Refactor to reduce multi-threading
* use cancellation token to cancel tasks on ctrl-c
* swallow TaskCancellationExceptions
* use volatile members for bools that are used between threads
* Check dump status on return to amke sure we don't throw additional
errors if event collection fails
* fix last whitespace issue
Fix dumpheap failures on certain dumps.
Issue: https://github.com/dotnet/diagnostics/issues/503
Add MemoryService to package up all the read memory "mapping" logic.
Add MemoryCache to module mapping logic.
Rewrote ReadVirtualCache because of a couple of bugs that caused
some test failures on triage dumps making !pe displaying the exception
message string not reliable.
Add SystemMemoryVersion property to Versions.props
* Allow user to specify text version of event level
* Throw on unknown event level
* add tests
* docs change
* more docs change
* make case insensitive comparison
* Refactor out ps command handler and add it to dotnet-dump
* More refactoring
* Some renaming
* update doc
* More docs update
* fix broken renamed file reference
* catch InvalidOperationException only
* Add /ContinueOnError option to speedscope converter
* Display a warning message when we have to continue on error
* Only retry if the exception thrown is from a broken trace
Both Windows and Portable PDBs are published.
Change to Windows PDB for SOS.NETCore.dll in sos symbol zip file
Publish Microsoft.Diagnostics.TestHelpers, DebugServices, Repl and RuntimeClient symbols
Add webapp debuggees and more SOS commmand tests
Add runtime version to TestConfiguration.ToString()
Added WebApp and WebApp3 as prebuilts. Use pipe to sync webapps. "dotnet-dump collect" to collect a dump from these apps.
Enable "dbgout" command logging
Speed up SOS tests by reworking ScriptLogger removing the .EndsWith on the last command output string.
Upgrade to 3.0.100 SDK
Switch to prebuilt debuggees except desktop (net462). Add debuggees.sln. Don't optimize debuggees.
Add the lldb plugin test python script as an xunit test
Publish the dump and bin artifacts on failure
Enable triage dump testing.
Switch to BYOC pools
* Fix a timeout exception causing unhandled exception crash
* Fix the same issue on Unix too
* Move the exception handling to StopMonitor to distinguish actually incompatible runtimes from early exits
* fix build error
* Fix dotnet-trace CLI according to the newest spec changes
* Add some configuration strings to help users understand where providers came from
* Some typos
* More UI changes suggested from PR
* Some strange Console bug causing issues... Clear the console before printing anything to make it work better
* remove provider/profile string from enabledBy column